我正在尝试从“加速的C ++”中获取第一个程序。
我无法让程序保持打开状态而不关闭它,因此我决定在int i = 0;
返回后放入cin >> i;
和main()
。不幸的是,无论我把那个cin
放在哪里,它似乎都不需要任何输入。
如果有帮助,它正在使用istream
引用来接受cin
输入。我不知道如何在此站点上输入代码。
答案 0 :(得分:1)
在我成年后的大部分时间里,我使用system("PAUSE")
都没有任何问题,可以保持程序窗口打开。当然,它对实时系统不好,但是它简单而强大,因为您实际上正在运行控制台命令,并且可以用来制作控制台脚本。
#include <iostream>
#include <cstdlib>
using namespace std;
inline void Pause () { cout << "\n"; system ("PAUSE); }
int main () { Pause (); }
此解决方案不是100%可移植的,但可以在PC上使用。更具便携性的解决方案是:
#include <conio.h>
#include <cstdio>
void Pause() {
cout << "\nPress any key to continue...";
while (_getch() < 0)
;
}
cin
非常适合做简单的事情,但我要做的是将std库包装在C函数中并使用它们,因为它可以大大缩短编译时间,以将std库头隐藏在实现文件中。>
在C ++中,首选的方法是使用std::getline()
的{{1}},尽管许多老师不允许您使用它。
使用std::string
,您还必须清除输入错误并使用cin
丢弃特定数量的字符。
ignore()
我多年的经验教会了我将#include <string>
string foo;
cout << "Why do they always use foo? ";
getline (cin, foo);
cout << "You just entered" << foo;
int bar;
cout << "\nThe answer is because programmers like to go to the bar."
"\nHow many times have you seen foo bar in an example? ";
while (!(cin >> bar)) {
cout << "\nPlease enter a valid number: ";
cin.clear ();
cin.ignore (10000, '\n');
}
字符放在输出行的开头而不是它们的结尾。