为了账号安全,请及时绑定邮箱和手机立即绑定

有谁知道,在c++中如何从文件里一次读出一行字符?

有谁知道,在c++中如何从文件里一次读出一行字符?

喵喵时光机 2021-12-31 09:05:43
记得有一个函数可以从文件中找到第一个目标字符,返回位置,是什么函数?还有一个问题,寻找指定字符的函数是从文件开头寻找还是从文件指针处开始呢?
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

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

查看完整回答
反对 回复 2022-01-03
?
慕容森

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的另一种重载的形式来读取这个换行符,然后为下一行的输入做好准备。



查看完整回答
反对 回复 2022-01-03
?
汪汪一只猫

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


查看完整回答
反对 回复 2022-01-03
  • 3 回答
  • 0 关注
  • 237 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号