0
這是一個OJ問題。 描述:獲取輸入數據的總和。 輸入:有幾行輸入,每行包含幾個整數,每個整數由一個空格分開。你需要得到每行整數的總和。 輸出:相應行的總和。 樣品輸入:如何擺脫這個「循環」沒有任何輸入指示終止?
100 200 4
45 45
輸出示例:
304
90
我的代碼如下:
//time limit exceeded
#include<iostream>
#include<cstring>
#include<stdio.h>
#include<math.h>
using namespace std;
int main(){
char a[500];
while (true){
gets_s(a);
int len = strlen(a), sum = 0;
for (int i = 0; i < len + 1; i++){
if (a[i] == EOF)return 0;
if (a[i] == ' ' || a[i] == '\0'){
for (int j = i - 1; a[j] != ' '&&j >= 0; j--){
sum += (a[j] - '0')*pow(10, i - j - 1);
}
if (a[i] == '\0')break;
}
}
cout << sum << endl;
}
return 0;
}
我相信問題出在程序隨時恭候當沒有更多線路輸入時的另一個輸入。但如何解決這個問題? 非常感謝。
使用'的std ::函數getline'在一個循環(),直到它返回'FALSE'。 –
@πάνταῥεῖ抱歉,但我不太明白... – beryllium
也許[this](http://en.cppreference.com/w/cpp/string/basic_string/getline)有幫助。 –