您的位置:首页 > 编程语言 > C语言/C++

对于不给数量n的编程题,该如何读一行数据(C++)

2018-03-28 22:56 288 查看
  应该是我做的题太少了,今天遇到的笔试题是不给要输入的数据量n的,因此要直接读一整行进行处理,我有两种方法,一个是使用getline(cin, str), 另一种就是getchar()一个个字符读了,相对而言,后一种更稳定更自由。具体参考代码如下:
1.问题描述:读入1 -2 3 4 5这样一行的数据string line;
getline(cin, line) ;
istringstream(line);

2.问题描述:读入2, -3, 4, 11, -5, 8, 3, -6(注意逗号)vector<int> v;
char c;
bool isbegin = false;
ostringstream os;
int num;
while(c = getchar() ) {
if(c == '\n' || c == '\t') {
isbegin = false;
istringstream in(str);
in >> num;
v.push_back(num);
break;
}
if(isbegin) {
if(c == ',' || c == ' ') {
str = os.str();
os.clear();
os.str("");
isbegin = false;
istringstream in(str);
in >> num;
v.push_back(num);
}
else {
os << c;
}
}
else {
if(c == '-' || isdigit(c) ) {
os<<c;
isbegin = true;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐