C++文本输入的处理

cin<<方式输入字符串时,遇到空格、制表符、换行符会输入结束。剩余输入内容将缓存在输入队列。

因此,如果输入内容中有空格就要考虑其他方法了。

cin.getline()和cin.get(str)都读取一行输入,直到换行符。区别是getline()丢弃换行符而get(str)将其保存在输入队列。

//输入带空格的英文名,再输入工作 cin.getline(name,nsize).getline(job,jsize); //get()如此做效果与上面相同 cin.get(name,size).get();
cin.get(job,size);

这种用法是不是和js中的原型链似曾相识呢~~

但如果混合输入数字和字符串,无论使用哪种输入,都必须注意输入队列中缓存的换行符,如:

1 int age; 2 char hobby[50]; 3 cin>>age; 4 cin.get(); //清除换行符 5 cin.getline(hobby,50);

再说一说cin.get(ch)与cin.get()的区别

cin.get(ch)目的是将输入字符赋值给参数ch,其返回值是istream对象;而cin.get()是将输入作为返回值。

遇到文件结束符EOF时,cin.get(ch)返回istream对象执行bool转换后值是false,cin.get()直接返回EOF。所以有下面两种方法判断非EOF:

if(cin.get(ch)) //... if((ch=cin.get())!=EOF) //...

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7b31de59b722fbc42535f73d613cf26c.html