mtwm.net
当前位置:首页 >> C++中Cin.gEt和Cin.gEtlinE的区别是? >>

C++中Cin.gEt和Cin.gEtlinE的区别是?

#include using namespace std;void main(void){string st ;coutvoid main(){char str[20];coutvoid main(){char str;cout 评论0 0 0

cin.getlin(char array[100],100,'\0') 这样的写法很不好看啊 cout 是输出流,如果右边是字符串变量的话,(最后有个'\0')那么要就从第一个字符到'\0'的内容输出. 如果是整数的话,因为它不是以'\0'结尾,所有只输出首地址啊

#include <iostream>#include <string> using namespace std; void main(void) { string st ; cout<<"Input st:"; getline(cin,st); cout<<st<<endl; } 上面这段代码,如果输入abc,那么需要按两次回车键才能显示abc(在VC6中),因为getline有三个参

看看c++ 的 istream::geline函数的说明里有The failbit flag is set if the function extracts no characters, or if the delimiting character is not found once (n-1)characters have already been written to s.如果读取了n-1个字符以后没遇见结束符,就设置了failbit flag 这个flag一这只,你这个cin就算废了,不能用了,所以你后面的读取全是空的.

The failbit flag is set if the function extracts no characters, or if the delimiting character is not found once (n-1)characters have already been written to s.如果读取了n-1个字符以后没遇见结束符,就设置了failbit flag 这个flag一这只,你这个cin就算废了,不能用了,所以你后面的读取全是空的.

楼主你说的“cin程序就无法执行”,那是因为cin会自动帮你忽略空格,回车等不可见字符,你判断c等不等于回车,这是永远都不可能相等的,因为cin把回车吃掉了.cin.get()函数的功能就是getchar()的功能,能一个一个获取字符,包括

cin.getline(s)没有这种用法,cin的getline需要这样用 cin.getline(s,50,'\n'); 其中s需要时char *或unsigned char *,50表示读入大小(最大),'\n'表示分隔符,可以省略,默认就是这个 getline(cin,s),s需要是string,需要引入string头文件,std::string空间引入 cin.getline适合你知道读入大小,固定char数组,速度快 getline(cin,s)不需要指定大小,但速度慢、生成的文件大,适合偷懒用

cin>>通常只能读取一个单词.cin.get()可以读取固定长度的字符串,含空格等符号.一、使用cin函数由于cin通过空格、制表符、换行符来界定字符串的.故cin在获取字符时只读取一个单词长度,对于有空格的字符串其空格后面字符读不了

举例: You(回车) are(回车) a great stupid(回车) I have(回车) met !(回车) Get的结果是"You\nare\na great stupid\nI have\n" GetLine的结果是"You",第一个回车就已经结束了,后面的都没机会输入.

cin.getlin(char array[100],100,'\0') 这样的写法很不好看啊 cout 是输出流,如果右边是字符串变量的话,(最后有个'\0')那么要就从第一个字符到'\0'的内容输出.如果是整数的话,因为它不是以'\0'结尾,所有只输出首地址啊

网站首页 | 网站地图
All rights reserved Powered by www.mtwm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com