这是我程序中的一段代码,cin.getline没有使用switch语句,但是没有switch语句就可以了,当我用switch语句时它只是跳过输入所以在我的代码中我评论了cin。 getline并将其替换为cin>> userData;
请告诉我在使用switch语句的时候出现了什么问题。
switch(option)
{
case 1:
cout<<"Enter string "<<endl;
//cin.getline(userData, 100);
cin.getline(userData,100);
答案 0 :(得分:2)
您的输入流中可能存在\n
,而您之前的代码很可能未在问题中显示,并且您需要将其清空以使cin.getline()
生效。< / p>
公认的智慧是使用ignore
:
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cin.getline(userData,100);
答案 1 :(得分:1)
您的代码works
#include <iostream>
int main(){
char userData[100];
auto option = 1;
switch(option) {
case 1:
std::cout << "Enter string" << std::endl;
std::cin.getline(userData, 100);
}
std::cout << userData;
return 0;
}
必须有一些你没有展示的东西。