【发布时间】:2017-11-03 07:53:49
【问题描述】:
大家好,我想一次将九个整数添加到数组中,而无需在运行时按回车键。请大家告诉我如何在 C++ 中同时将九个整数添加到数组中。 谢谢!
【问题讨论】:
-
std::cinastd::string并使用一些除号规则对其进行解析。
大家好,我想一次将九个整数添加到数组中,而无需在运行时按回车键。请大家告诉我如何在 C++ 中同时将九个整数添加到数组中。 谢谢!
【问题讨论】:
std::cin a std::string 并使用一些除号规则对其进行解析。
如果您想在控制台中的输入完成后立即处理每个整数值(例如,空白表示下一个整数值应该开始),那么您处于错误的位置。
原因是终端输入(超出您的 C++ 程序可以影响的范围)经常被缓冲,甚至在终端中按下 Enter 或 EOF 之前,即使 cin 也可能不会收到任何字符。
可能存在conio.h 或ncurses 之类的变通方法,但它们不是标准的,在您的情况下可能不值得努力,除非您确实需要为与控制台输入紧密连接的生产环境实施整数扫描。
尝试一下,并将直接从控制台获取的输入与来自已经“填充”有足够输入的流的输入进行比较:
int main() {
stringstream ss("12 34 56 78 90 10 11 12 13");
//istream &in = ss; // would output each integer immediately.
istream &in = cin; // will probably wait for enter before processing begins.
int value = 0;
for (int i=0; i<9; i++) {
if (! (in >> value))
break;
cout << value << "; ";
}
}
【讨论】: