0

我尝试使用各种技术解决系统暂停问题。我终于可以选择cin>> "(variable created)";让程序等待我的命令关闭。它工作正常。现在,问题是可以遵循该技术还是会留下漏洞,例如system("pause");

4

3 回答 3

3

断点是暂停程序的最佳方式。这些实际上是用于暂停程序。

于 2013-01-06T13:43:28.480 回答
0

cin>> "(variable created)"是一种非常糟糕的暂停程序的方法 - 如果用户输入任何内容,您会通过尝试覆盖只读字符串来调用未定义的行为(这实际上会使您的程序在某些系统上出现段错误)。

你可以使用

char dummy[2];
cin.getline(dummy, 2);

如果您之后不关心输入流的状态(一些输入将保留在那里,可能会设置故障位)。

一般来说,我建议不要在任何形式的程序结束时使用暂停。

于 2013-01-06T13:37:08.163 回答
0

使用 cin.getline(...) 后使用 cin.flush()。此命令从缓冲区中删除换行符。

于 2013-01-06T13:41:27.197 回答