getline()函数
的有关信息介绍如下:问题补充说明:\那么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&getline(char*sink,intsize,chardelim='\n')各参数意义亮斤战陈车粒市尔至:
从调用它的输入流类型对象,也就是cin中读取size个字节并将它们存储到sink所指向的字符数组中。读操作直到遇到delim字符,或已经读快副实现令免运她照财孩入了size个字符,或遇到文件起振们热类者图空何结束符才结束。如果出现了d厂呼汉她李损营客业员纪elim,读并丢弃d光elim,"读并丢弃"意思是说输入流中delim字符没有了,但钟delim字符并混判台查胡起生呼个握千没有存入到sink所指向的数组。另外还有一点要注意的是:delim默认情况下是'\n',。也就是说你写的cin.getline(s,1000,,'\n')可以简写成cin.get系line(s,1000)而且getline()函数会自动为读取的字符末尾加一个空字符'\0'.
看下面的程序你就干明白了:
当我输入:012345678910十二个字符时,运行结果为:
看似只读入9个字符,其实不然,最后一个空字符'\0'是不可打印字符,所以没有显示出来,但你可以访问一下,在程序里加一条cout<<s[9];:改后如下:
运行结果为:
和第一个的运行结果比较,你会发现Pressanykeytocontinue_向右移动了一格,这一格就是那个不可见的空字符'\0'。