读书人

C++ cin怎么判断读取回车符并进行判断

发布时间: 2012-02-25 10:01:48 作者: rapoo

C++ cin如何判断读取回车符并进行判断
我想要实现的要求大致是这样的

有一定数目的行,其中每行存在两个整数
中间存在一些空行,以空行为间隔,分别计算各个区域的数值的和

不知道说清楚了没
比如输入的是
2 3
4 5
1 1

1 1

2 2
3 3

输出的就应该是
16
2
6

读入数值的时候可以用
cin> > a> > b
但是不知道如何来判断这一空行.
想到一个思路,先把每行当作字符串读入,判断是否空行,然后再把字符串转换成数字.
不用这么麻烦吧?有没有其它思路?
输入并不是以文件形式的!



[解决办法]
int sum=0;
while(1){
int line[3];
cin> > line[0]> > line[1]> > line[3];
sum+=line[0]+line[1];
if(line[0]== '\13 ')break;
}



[解决办法]
#include <sstream>
#include <string>
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
string line;
int i, j, sum=0;
getline(cin, line);

while(line != "exit ")//输入 exit 退出
{
if(line != " ")
{
istringstream s(line);
s> > i> > j;
sum = sum+i+j; //每行的格式固定是两个整数,可以这么输入,累加
}
else
{
cout < < "sum is " < <sum < <endl; //输入的是空行,输出 和
sum=0; //sum清空
}
getline(cin, line); //接收下一行
}
system( "PAUSE ");
return 0;
}

读书人网 >C++

热点推荐