我正在尝试使用 getline() 从用户那里获取输入。
以下代码工作正常。它等待用户输入文件名并将其存储在 fileName 中。
#include <iostream>
#include <string>
using namespace std;
string inputFile();
int main()
{
string fileName;
cout << "Enter the name of the file including the path" << endl;
getline(cin, fileName);
return 0;
}
但是,此代码无法正常工作。
#include <iostream>
#include <string>
using namespace std;
string inputFile();
int main()
{
int option;
cout << "Enter option number" << endl;
cin >> option;
switch (option)
{
case 1:
{
string fileName;
cout << "Enter the name of the file including the path" << endl;
getline(cin, fileName);
break;
}
case 2:
cout << "You chose option 2";
break;
case 3:
cout << "You chose option 3";
break;
default:
cout << "value unknown";
}
return 0;
}
在用户输入 1 并且程序进入 switch...case 之后,再次要求用户输入文件名。但是,这一次程序不等待响应。
为什么 getline() 不能像在 switch...case 结构之外那样工作?
任何建议将不胜感激。