c++蓝桥等考,输入若干行数后,求它们的和

蓝桥等考中输入格式需严格匹配样例,如多行输入以换行分隔。‌
参考1:

#include <iostream>
using namespace std;
int main()
{   int a,s=0;
    cin>>a;
    s+=a;
	while (!(cin.peek()=='\n'||cin.peek()==EOF)){
		cin.ignore();
		cin>>a;
		s+=a;	
	}
	cout<<s;
	return 0;
 } 

参考2:使用getline读取整行‌ 该方法逐行读取输入,适合每行有多个整数的场景。核心是用stringstream解析每行数字,循环直到标准输入结束(如输入Ctrl+D或Ctrl+Z)。‌

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main() {
    string line;
    while (getline(cin, line)) {
        int sum = 0;
        int x;
        stringstream ss(line);
        while (ss >> x) {
            sum += x;
        }
        cout << sum << endl;
    }
    return 0;
}
#include<iostream>
#include<string>
#include<sstream>
using namespace std;

int main()
{
	string line;
	while(getline(cin, line))
	{
		int sum = 0, x; 
		stringstream ss(line); // 将 line 复制到 stringstream ss 中 
		while(ss >> x) sum += x; // 相当于输入一个个的单词,自动将其转化换为数字 
		cout << sum << "\n";
	}
	return 0;
}

参考3:循环输入整数‌ 此方法直接读取整数,自动跳过空白字符(包括换行),更简洁。循环通过检查输入流状态(如cin.fail())判断结束,适用于连续整数输入。‌

#include <iostream>
using namespace std;

int main() {
    int sum = 0;
    int num;
    while (cin >> num) {
        sum += num;
    }
    cout << sum << endl;
    return 0;
}
posted @ 2026-01-04 17:09  gdyyx  阅读(7)  评论(0)    收藏  举报