gpt4 book ai didi

c++ - 输入什么时候停止?

转载 作者:行者123 更新时间:2023-11-30 02:23:34 32 4
gpt4 key购买 nike

大家好,我有以下问题:

字符串s;

std::cout << "give me a string" << std::endl;  
while (std::cin >> s){
std::cout << "give me a string" << std::endl;
}
cin.clear();

如果 s 是一个整数,那么我知道如果我输入一个 char 那么 while 就会中断。如果它是一个整数 并键入一个double,同样会发生。但是 strings 呢?我在 windows 的某个地方读到过(因为我在 windows 的 netbeans 上写过)你必须按 ctrl+z 然后它停止,因为它被认为是一个错误的字符串。但是当我这样做时,进程卡住并且没有任何反应。

最佳答案

你需要发送EOF信号,在Netbeans中是Ctrl + D

但是,按两次 Enter 将导致循环条件解析为 false,从而导致循环停止。这是预期的:How is "std::cin>>value" evaluated in a while loop?

如果这不起作用,请使用 Ctrl + z 和一个换行符,这是 Windows 中的 EOF 信号,如 here 所述. Ctrl + D 虽然适用于 Linux,但它适用于您的情况。

EOF 信号关闭输入流,从而打破循环。


此外,在 Netbeans 中(如果上述方法不起作用),您似乎需要 run your application from the command prompt为了达成这个。另一种尝试是“按 Enter 后按 Ctrl + z”,如 here 所述.

关于c++ - 输入什么时候停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46114870/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com