c++ - 输入流对象cin丢弃不合类型字符的问题
本文介绍了c++ - 输入流对象cin丢弃不合类型字符的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
题目要求编写一个while循环语句,每次循环读入两个int并且将他们压入vector,当输入'|'后结束程序
现在的问题在于题目要求输入两个不一样类型的字符
#include <iostream>
using namespace std;
int main() {
int num_1, num_2;
char stop;
while (cin >> stop) {
if (stop == '|') {
break;
} else {
cin >> num_1 >> num_2;
cout << num_1 << " " << num_2 << endl;
}
}
return 0;
}
以上程序是我能想到的一个解决方案,这时可以利用|来结束循环,但是这里存在一个问题,输入流对象会抛弃读到的第一个数字(因为1不是char类型)
input: 123 56
output: 23 56
请问各位有没有其他的方解决方案,谢谢了~~~
解决方案
搞定,存入vector就自己写了吧,问题帮你解决了。
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int num_1, num_2;
char stop;
while (cin >> stop) {
if (stop == '|') {
break;
} else {
num_1 = stop-'0';
cin >> num_2;
cout << num_1 << " " << num_2 << endl;
}
}
return 0;
}
这篇关于c++ - 输入流对象cin丢弃不合类型字符的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文