c++中如何从文件里一次读出一行字符

来源:百度知道 编辑:UC知道 时间:2024/07/05 05:20:25
记得有一个函数可以从文件中找到第一个目标字符,返回位置,是什么函数?
还有一个问题,寻找指定字符的函数是从文件开头寻找还是从文件指针处开始呢?

从文件里面找字符的要自己写
打开文件fopen
然后fgets读取一行
然后strrchr来判断字符

重定位流上的文件指针
用 法: 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

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不再读取并丢弃换行符,而是将其留在输入队列中。所以经常出问题。由于第一次调用后,换行符留在队列中,因此第二次调用时看到第一个字符边是换行符