回 帖 发 新 帖 刷新版面

主题:C++迷惑

#include <iostream>
#include <string>
using namespace std;
int main(){
    char str[260];
    int sum=0;
    while(cin.get(str,260)){
        for(int i=0;i<strlen(str);i++){
           if(str[i]=='#')
              break;
           if(str[i]==' '){
              continue;
           }
           sum=sum+(i+1)*((int)str[i]-64);
       }
       cout<<sum<<endl;
       sum=0;
    }
    return 0;
}
连续输入一串字母,打印sum
例子:ACM: 1*1 + 2*3 + 3*13 = 46
      MID CENTRAL: 1*13 + 2*9 + 3*4 + 4*0 + 5*3 + 6*5 + 7*14 + 8*20 + 9*18 + 10*1 + 11*12 = 650

空格为0
怎么可以达到连续输入多行,源代码每次只可以输入一行,求解

回复列表 (共1个回复)

沙发


你可以试试使用get或者getchar,一个一个字符的判断,如果字符是\n就不计算或者你定义一个值来据算。
这样的话结束就不好判断了,你可能得定义一个结束的字符,用来判断结尾。

我来回复

您尚未登录,请登录后再回复。点此登录或注册