C++ 在第二次运行时出错
第一次程序运行完美,但第二次它没有从用户输入字符串,我不知道为什么 我认为C++ 在第二次运行时出错,c++,string,C++,String,第一次程序运行完美,但第二次它没有从用户输入字符串,我不知道为什么 我认为getline(cin,str)中存在问题但我无法解决问题 #include<iostream> #include<string> using namespace std; int main(){ string str; char check; do{ system("cls"); cout<<"Enter the number
getline(cin,str)中存在问题代码>但我无法解决问题
#include<iostream>
#include<string>
using namespace std;
int main(){
string str;
char check;
do{
system("cls");
cout<<"Enter the number (sample : +92121234567(Must contain 12 characters)) : ";
getline(cin,str);
cout<<endl<<str;
if(str.length() == 12){
string countrycode = str.substr(0,3);
if(countrycode == "+92"){
string citycode = str.substr(3,2);
if(citycode == "51"){
cout<<endl<<"This number belongs to Islamabad";
}else if(citycode == "42"){
cout<<endl<<"This number belongs to Lahore";
}else if(citycode == "21"){
cout<<endl<<"This number belongs to Karachi";
}else{
cout<<endl<<"Unknown Number";
cout<<endl<<"Remarks : ";
cout<<endl<<"Unknown city code";
}
}else{
if(str.substr(0,1) =="-"){
cout<<endl<<"Unknown Number";
cout<<endl<<"Remarks : ";
cout<<endl<<"Wrong country code format";
}
if(str.substr(1,2) !="92"){
cout<<endl<<"Unknown Number";
cout<<endl<<"Remarks : ";
cout<<endl<<"Unknown country code";
}
}
}else{
cout<<endl<<"Unknown Number";
cout<<endl<<"Remarks : ";
cout<<endl<<"Number is over 12 characters";
}
cout<<endl<<"Do you want to enter another number (y/n): ";
cin>>check;
//str.clear();
}while(check=='y'||check=='Y');
cout<<endl<<"End of Program. Bye!"<<endl;
system("pause");
return 0;
#包括
#包括
使用名称空间std;
int main(){
字符串str;
字符检查;
做{
系统(“cls”);
不能使用cin>>str;
不知道为什么,但getline对我也不起作用。可能重复的cin>>检查;
只读取一个字符,但您必须[输入]您的输入。因此,行尾\n
保留在内部输入缓冲区中,并在第二次调用getline()
时生效。您应该添加cin.ignore()
在检查
之后,当您点击回车键时,您的程序也会读取\n作为输入。这是为什么。