const int ArSize = 20;
char name[ArSize];
char desert[ArSize];
char nickname[ArSize];
cout << "Enter your name:\n";
cin >> name;
cout << "Enter your favourite desert:\n";
cin >> desert;
cout << "Enter your nickname:\n";
getchar();
cin.getline(nickname,20);
cout <<"nickname =="<<nickname;
cout << "I have some Delicious " << desert <<" ";
cout << "for you, "<< name << ".\n";
其中cin.getline() 没有被执行就跳过了。是因为读取到了上次输入的回车。
方法1:
可以用getchar(),也可以用fflush(stdin);处理该问题
方法2:
cin.get(name,20).get();
第二个get()会直接处理换行符,为下一次输入做好准备