3 回答

TA贡献1853条经验 获得超18个赞
int get();
istream& get ( char& c );
istream& get ( char* s, streamsize n );
istream& get ( char* s, streamsize n, char delim );
istream& get ( streambuf& sb);
istream& get ( streambuf& sb, char delim );
可以从输入设备获得一个字符,也可以读取字符串。默认采用'\n'作为分隔符。
使用get函数时,get函数与getline接受的参数相同,解释参数的方式也相同,并且都读取到行尾,但是get不再读取并丢弃换行符,而是将其留在输入队列中。所以经常出问题。由于第一次调用后,换行符留在队列中,因此第二次调用时看到第一个字符边是换行符,因此get认为已经到达队尾,而没有发现任何可读取的内容。如果不借助于帮助,get将不能跨过该换行符。可以采用get的另一种重载的形式来读取这个换行符,然后为下一行的输入做好准备。

TA贡献1898条经验 获得超8个赞
重定位流上的文件指针
用 法: int fseek(FILE *stream, long offset, int fromwhere);
描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值: 成功,返回0,否则返回其他值。
int fseek( FILE *stream, long offset, int origin );
第一个参数stream为文件指针
第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
SEEK_SET: 文件开头
其中SEEK_CUR,SEEK_END和SEEK_SET依次为1,2和0
添加回答
举报