当C 中不再有STD输入时,我该如何完成程序完成
How can I make my program finish when there is no more std input in C++?
我正在使用算法,当我不再输入该程序时,我被要求打印"退出"。
我正在使用
char c;
while(c = getchar()){...}
因为我需要查找'n'
字符和数字。
因此,我复制样本输入并将其粘贴到我的程序上以测试它,但是它一直在等待另一个输入,因此,当我提交时,我得到了时间限制。
ps:我不能使用多线程。
您可以在getchar()
返回EOF
时停止,如:
int c;
while ((c = getchar()) != EOF) {...}
请注意,c
需要声明为int
,而不是char
。
要使您的程序更加c - 喜欢,在循环中使用操作员>>
代替getchar
,这样:
char c;
while (cin >> c) {...}
getchar()
返回int,而不是char。特别是,它在文件末端返回EOF,EOF通常为-1。因此,如果将其存储在字符中,它将永远不会比较等于EOF。
int c;
while ((c = getchar()) != EOF) {
您是从文件中读取的吗?如果是这样,getchar()
将返回eof:http://www.cplusplus.com/reference/cstdio/cstdio/getchar/
so
int c=getchar();
while (c != EOF) {...}
应该工作。
相关文章:
- 不必要的C++代码最终会出现在我完成的程序中吗?
- async_write完成处理程序最早何时完成?
- Bash 自动完成一个选项,而不运行应用程序
- 完成任何一个操作后,该程序会自动退出,为什么?
- DPDK应用程序可以用c++编写吗?如果是,如何完成?
- 如果我对"while"块发表评论,为什么程序会死机?其中的"yield"线有何影响?
- 如果操作系统未清除内存泄漏,则在程序完成后内存泄漏是否仍然存在?
- 程序完成之前C++程序命令窗口将关闭
- C++ Boost::asio::io_service 程序完成后如何安全地销毁io_service资源
- 程序在其中一个案例完成后终止,但对于其他情况则不终止
- 我的 c++ 程序未完成并关闭
- 如何判断Microsoft打印到 PDF 打印机驱动程序何时完成
- 当C 中不再有STD输入时,我该如何完成程序完成
- 程序未完成返回值3221225477没有编译器错误
- boost::async_connect 上的 ASIO 完成处理程序在第一次失败后再也没有调用过
- 程序在完成后卡住
- C++线程程序未运行完成
- 嗨,我需要帮助构建具有特定要求的程序.我已经开始,但只需要帮助完成即可
- C++ 程序自动关闭时 Main() 函数完成
- ns-3 模拟器批量发送应用程序完成时间