C++的简单输入/输出查询
A Simple input/output query of C++
我必须把它作为输入:
3 山 姆
99912222 汤姆
11122222 哈利
12299933
所以,我写下了以下代码:
string s;
int num,n;
cin>>n;
while(n--){
getline(cin,s);
cin >> num;
cout << "s=" << s << " num=" << num << endl;
}
因此,预期输出应为:
s=山姆数=99912222
s=汤姆数=11122222
s=哈利·努姆=12299933
但输出是:
s= 数字=0
s= 数字=0
s= 数字=0
我哪里做错了?
一个问题是获取计数的 cin>>n;
语句在输入缓冲区中留下换行符。因此,当您调用getline
时,它会看到该换行符并认为您输入了空行。
然后,当您尝试读取数字时,情况会变得更糟,因为下一个文本不是数字,而是名称,尝试将其读取为数字将设置failbit
。
标准解决方案是在换行符之前忽略字符,这将跳过该行的其余部分,包括换行符。所以做类似的事情
std::cin >> n;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
当然,在其他输入之后,您也需要它。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 查询SQLite数据库中的日期
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 显示 QLabel 中 sql 查询的输出
- C++的简单输入/输出查询
- 如何组合两个查询并使用第一个查询的结果作为第二个查询的输出