6
我有这样的循环,现在,在数字读取,并将其输出的十进制,八和十六进制:丢弃除了数字字母与CIN
while(1) {
if (cin >> n)
cout << internal << setfill(' ') << setw(10) << dec << n << internal << setw(12) << oct << n << internal << setw(9) << hex << uppercase << n << endl;
if (cin.fail()) {
break;
}
}
但是,如果我尝试放弃那些不能与数字输入这不会在输入后读取字母:
if (cin.fail()) {
cin.ignore();
}
如何放弃输入但能够在稍后读取其他输入?
样品输入:
23
678 786 abc
7777
预期输出:十二月,月,十六进制
23 27 17
678 1246 2A6
786 1422 312
7777 17141 1E61
您错过了对'cin.clear()'的调用。你需要清除'failbit'。只要设置了,所有操作立即失败。 –