我现在有这个循环读入数字并以十进制,八进制和十六进制输出:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试丢弃不是数字的输入,它将不会在字母后面的输入中读取:
if (cin.fail()) {
cin.ignore();
}
Run Code Online (Sandbox Code Playgroud)
如何丢弃输入但稍后可以读取其他输入?
样本输入:
23
678 786 abc
7777
Run Code Online (Sandbox Code Playgroud)
预期输出:dec,oct,hex
23 27 17
678 1246 2A6
786 1422 312
7777 17141 1E61
Run Code Online (Sandbox Code Playgroud)