2021-03-06 程序设计_week1——输入输出练习

摘要:

算法题中对于输入数据的处理


总结:

1. 有明确的的输入行数和每一行输入的个数:直接无脑cin就行
2. 没有明确的输入行数:利用整行读入函数

char c[1000];
scanf("%[^\n]",s);//一般都是读到换行符为止

或者

string str;
getline(cin,str,'\n');//第三个参数是自定义的分隔符

读入string或者char[]后转化为字符型串流,利用重载过后的 > > >> >>来逐个取出,如

#include <iostream>
#include <stdio.h>
#include <sstream>
#include <vector>
#include <string>

using namespace std;

	void function() {
    
    
	char c[1000000];
	while (~scanf("%[^\n]%*c ", c))
	{
    
    
		int temp = 0;
		int sum = 0;
		istringstream s(c);
		while (s >> temp)
		{
    
    
			sum += temp;
		}
		cout << sum << endl;
	}
} 



int main() {
    
    
	function();
	return 0;
}

或者

#define _USE_MATH_DEFINES
#include<iostream>
#include<algorithm>
#include<vector>
#include<cmath>
#include <sstream>
using namespace std;


int main() {
    
    
	int num = 0;
	int sum = 0;
	string str;


	while(getline(cin,str,'\n'))
	{
    
    	sum=0;
		stringstream strl(str);
		while (strl >> num)
		{
    
    
			sum=sum+ num;
		}
		cout << sum << endl;
		strl.clear();
	}
}

3. 也可以用cin或者scanf的返回值作为判断结束的标志。

while(cin>>temp)
{
    
    }
//或者
while(~scanf("%d",&temp))
{
    
    }

原题链接:

week1_输入输出练习

猜你喜欢

转载自blog.csdn.net/sddxszl/article/details/114455838
今日推荐