我用C++编写了一个非常基本的程序,它要求用户输入一个数字,然后输入一个字符串.令我惊讶的是,在运行程序时,它永远不会停止询问字符串.它只是跳过了它.在对StackOverflow进行一些阅读后,我发现我需要添加一行说:
cin.ignore(256, '\n');
Run Code Online (Sandbox Code Playgroud)
在获取字符串输入的行之前.添加修复问题并使程序正常工作.我的问题是为什么C++需要这一cin.ignore()行,我如何预测何时需要使用cin.ignore()?
这是我写的程序:
#include <iostream>
#include <string>
using namespace std;
int main()
{
double num;
string mystr;
cout << "Please enter a number: " << "\n";
cin >> num;
cout << "Your number is: " << num << "\n";
cin.ignore(256, '\n'); // Why do I need this line?
cout << "Please enter your name: \n";
getline (cin, mystr);
cout << "So your name is " << mystr << "?\n";
cout << "Have a nice …Run Code Online (Sandbox Code Playgroud) 我是C++的新手,我正在读一本名为Big C++的书.在本书中,我到目前为止看到的所有示例程序都return 0;在最终结束之前结束}.我显然可以让C++程序return 0;在最后运行,所以我想知道它的用途是什么.我熟悉从java中的方法返回一些东西,但我不明白为什么int main()需要在C++中返回0.为了得到更多关键点:我是否应该总是main()用return 0;C++ 结束?如果没有,我什么时候需要,什么时候不应该?什么return 0;告诉程序要做什么?
在一个相关的问题中,我假设C++中的main()正在设置main函数,就像java中的main方法一样.那是对的吗?为什么main方法被声明为整数?那是在发生什么int main() {?