ge怀编守液tline()函数
的有关信息介绍如下:问题补充说明:\那么s中最后2个字符是‘\么;n'0'和'?还是其他用getline()函数,若输入“jksdhfksdhg sdfhlasj" 以‘\"\n'.getline(s,1000;),1000;n"请输入字符串:char*s=new char[1000];cin.getline(s:\n‘结束;\cout<,' cin,'<部分代码如下;n';)
首先你只要弄明白了这个版本getline()函数的函数原型,这些问题就迎刃而解了。它的函数原型是:
istream&getl360问答ine(char*sink,intsize,chardelim='\n')各参数意义:
从调用它的输入流类型对象,也就是cin中读取size个字节并将它们存储到sink所指向的字符数组中。读操作直到遇到delim字符,或已经读入了size个字符,或遇到文件结束符才结束。如果出现了delim,读并丢弃delim,"读并丢弃"意思是说输入二特流中delim字符没有了,但delim字符并没有存入到sink所指向的垂存思热数组。另外还有一点要注意的是:delim这触专极完跑响默认情况下是'\n',。也就是说你写的cin.getline(s,1000,,'\n')可以简写成cin.getline(s,1000)而且getli务没宜际洋ne()函数会自动为读取的字表已承再接符末尾加一个空字符'\0'.
看下面的程序你就明白了:
当我输入:012345678910十界卫买这之久钢沿皮思二个字符时,运行结果为:
看似只读入坏积苏守变判大娘命9个字符,其实不然,最后一个空字符'\0'是不可打印字符,所以没有显示出来,但你可以访问一朝下,在程序里加一条cout<<s[9];:改后如下:
运行结果为:
和第一个的运行结果比较,你会发现Pressanykeytocontinue_向右移动了一苗格,这一格就是那个不可见的空字符'\0'。