关于std::cin组塞的问题
假如我在主线程里循环
while (bcontinue){ std::string inputs; getline(std::cin, inputs); if ("q" == inputs) bcontinue = false;.....................}while (bcontinue){ if(某些情况) //没有太看懂你的意思,是不是要这样? break; std::string inputs; getline(std::cin, inputs); if ("q" == inputs) bcontinue = false;.....................}
[解决办法]
ls应该可以了
[解决办法]
那个,复杂交互还是用个gui程序吧,别折腾控制台程序了。
[解决办法]
while (bcontinue)
{
std::string inputs;
getline(std::cin, inputs,'q');
}
[解决办法]
那,同样,不可能cin能解决所有问题。
cin天生就是阻塞的。
[解决办法]
直接输入非"q"的字符串不也是模拟数据吗?
[解决办法]
1.使用管道,把输入改向
2.使用信号,比如自定义信号处理函数USR1,然后向进程发送USR信号,可以中断阻塞状态
[解决办法]
比如在linux的gdb调试状态下,可以这样执行:
r < /dev/null
[解决办法]
有个函数可以满足LZ的要求,ungetc(ch,stdin);把字符ch放回输入流
[解决办法]
可以写一个特定的字符,输入该字符就忽略,
例如p