cin.getline(ch,'\n')这条语句怎么解释?
来源:百度知道 编辑:UC知道 时间:2024/05/21 07:21:29
cin.getline有三种格式:不带参数的(cin.getline()),带一个参数的(cin.getline(ch)),带三个参数的(例cin.getline(ch,n,'\n'))。我个人认为,第三种完全可以代替前两种格式。
但是cin.getline(ch,'\n')这个算哪条解释呢?
cin.getline(ch,'\n')在整个程序中它的意思是遇到换行符结束读入吧?cin.getline有三种格式,要是它可以省掉第二个参数,那就应该出现第四种格式了吧?没听说啊。
但是cin.getline(ch,'\n')这个算哪条解释呢?
cin.getline(ch,'\n')在整个程序中它的意思是遇到换行符结束读入吧?cin.getline有三种格式,要是它可以省掉第二个参数,那就应该出现第四种格式了吧?没听说啊。
很显然,cin.getline(ch,'\n')应该被第三条解释,即:
带三个参数的cin.getline(ch,n,'\n')。只是需要注意的是此时cin.getline(ch,'\n')中的'\n'的值被解释为数组长度了。
使用cin.getline(ch,'\n')不能得到楼主所说“在整个程序中它的意思是遇到换行符结束读入”的结果。根据getline的定义,第二个参数被解释为读入的字符串的最大长度。而使用cin.getline(ch,sizeof(ch))反而能够得到楼主所说的结果,因为第三个参数的缺省值就是'\n'。
cin.getline(ch,'\n')应该算是第三条解释,它读取一行,字符数可以省略,
istream &getline( char *buffer, streamsize num );
istream &getline( char *buffer, streamsize num, char delim );
getline()函数用于输入流,读取字符到buffer中,直到下列情况发生:
num - 1个字符已经读入,
碰到一个换行标志,
碰到一个EOF,
或者,任意地读入,直到读到字符delim。delim字符不会被放入buffer中。
cin.get 和cin.getline的问题
cin.get和cin.getline的区别?
c++中 输入 cin.get和cin.getline的区别是什么 谢谢
c++ 关于 cin.get() 和 cin.getline()到底有哪些区别啊,苦恼中
关于cin.getline(a,sizeof(a))和istrstream ins(str)的问题
请教c++里string与getline(cin,string)的有关内容.
为什么无法循环,问题是出现在cin.getline(a,sizeof(a))吗?请问有什么方法让他正常循环?
while(cin)
while(!cin)
baidu.cin