c++实现对每一行输入的数据的运算
2016-11-01 19:15
302 查看
例题:输入数据的每行包含若干个以空格隔开的整数,输出每行中所有整数之和。
1.cin为istream类的对象,输入的是字节流,对输入的解释取决于>>后面的参数类型。比如本题中line为string类型,cin会把第一个非空白字符(空白字符:空格、制表、换行等)到下一个空白字符之前的字节读取出来,存储到string对象中,因此会出现问题中所述的情况。但是还有一个简单的string io操作,那就是getline。例如string line; getline(cin,line);
只要输入第一个字符不是回车,最后一个字符是回车,这之间的内容都会被读取到line中,这些内容就可以是包含空格的字符串的。
为了读完整行的内容,本题的第一和循环体条件判定处必须使用getline而不只是cin。
可以这样理解,cin>>执行结束时间是遇到空白字符时;getline(cin,line)的执行结束时间是遇到回车时。
(注:在命令行中是遇到回车后才把输入缓冲区中的数据送到输入流中。)
#include<iostream> #include<string> #include<sstream> using namespace std; int main() { string line; while(getline(cin,line)){//此处每次读完一行才进行判断,然后进入循环体 int sum = 0,x; stringstream ss(line);//把读入的字符串编程字符串流 while(ss>>x) //把字符串流中的每个数据一次读到x中,进行累加运算。读完流后退出。 sum +=x; cout<<sum<<"\n"; } return 0; }注:
1.cin为istream类的对象,输入的是字节流,对输入的解释取决于>>后面的参数类型。比如本题中line为string类型,cin会把第一个非空白字符(空白字符:空格、制表、换行等)到下一个空白字符之前的字节读取出来,存储到string对象中,因此会出现问题中所述的情况。但是还有一个简单的string io操作,那就是getline。例如string line; getline(cin,line);
只要输入第一个字符不是回车,最后一个字符是回车,这之间的内容都会被读取到line中,这些内容就可以是包含空格的字符串的。
为了读完整行的内容,本题的第一和循环体条件判定处必须使用getline而不只是cin。
可以这样理解,cin>>执行结束时间是遇到空白字符时;getline(cin,line)的执行结束时间是遇到回车时。
(注:在命令行中是遇到回车后才把输入缓冲区中的数据送到输入流中。)
相关文章推荐
- c++输入文件处理按行读取并且将实现对一行数据分别处理
- C++ 通过main()函数输入参数,实现简单的四则运算
- 关于C++/C 输入一行整型数据,数量不定问题,如何读入
- C++实现多种类型数据的动态输入
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n
- 两个数间的交换(按位操作不用中间变量temp即可实现两个数据的交换)C++按位与运算交换数据vs2013环境
- JFrame实现输入数据运算输出数据
- c++实现同或运算
- C/C++用移位实现乘除法运算,提高运行效率
- 设计一个时间类Time, 包括时,分,秒等私有数据成员。要求实现时间的基本运算,一个时间加上另一个时间。。
- :一条SQL实现将多行数据并为一行显示
- 自定义函数实现字符串中数据的运算和统计2
- C++中如何输入一行字符串?
- 矩阵基本运算的实现(standard C++Version)
- Asp.net Repeater控件实现一行显示多条数据
- C#利用DataGridView实现数据的快速输入
- C与C++中标准输入实现方式上的一点区别
- TOP N的一些问题,可以实现取得表中最大的一行ID的数据。
- C++模板应用——在类模板实现中引用其内部定义的复合数据类型
- 一个只能输入数值型数据的文本框类实现(C#)