如果我想改用printf读入也要getchar()吗?为什么呢?

头文件略
int main(){
int n;cin>>n;
for(string s;n--&&getline(cin,s);){……}
……}
会把n读入进for(初以为因为是getline不是cin),但是后来又遇到cin也是同样的错误。
如问题所问。

牧羊人nacy
浏览 163回答 1
1回答

慕勒3428872

getchar的作用是到输入缓冲区读数据,只读一个字节而你如果加上char c;c=getchar();//测试中只要少了这段就不必要再加1个getchar()停留cout<<c<<endl;在你输入这个char c时 是不是要输入一个字符,然后回车,这个字符被c=getchar获取到了,并赋值给c但是还有一个回车存在了输入buffer里面所以在下面你要停住的时候,第一个getchar就获取到了这个回车 无法达到停住的效果停留窗口,getchar是个不错的方法,保险起见,可以先清空输入buffer或者用getch函数如果是windows可以用system("pause") 这个方法很流行
打开App,查看更多内容
随时随地看视频慕课网APP