请问上stream里的get()函数
请教下stream里的get()函数char *str new char[7]//题外话,不知道这么写是否正确nfile.get(str,7) cou
请教下stream里的get()函数
char *str = new char[7];//题外话,不知道这么写是否正确
nfile.get(str,7) ;
cout<<str<<endl;
cout只能出来六个字符,这是为什么啊
谢谢各位了
[解决办法]nfile是什么,是不是cin
如果是cin,str[6]存放的是'\0'作为结束符
[解决办法]
_Myt& __CLR_OR_THIS_CALL get(_Elem *_Str, streamsize _Count)
{
// get up to _Count characters into NTCS
return (get(_Str, _Count, _Myios::widen('\n')));
}
它调用了这个函数:
_Myt& __CLR_OR_THIS_CALL get(_Elem *_Str, streamsize _Count, _Elem _Delim)
说明:
1.当输入的字符数小于count时遇到字符delim,get函数不会读取delim这个字符,然后返回,然后在读取的字符串后面自动加上'\0'(teminator character)。
2.当输入的字符数大于count时,则get函数只读取count-1个字符,而其余的字符仍然保存在缓冲区中,还可再对其进行读取,然后在读取的字符串后面自动加上'\0'(teminator character)。
明白了吧。。就是这能读取6个字符,但是你可以再读取一次,读到第7个字符。