linux c 按行读取文件

阳光穿透心脏的1/2处 2021-09-02 09:21 852阅读 0赞

c中没有getline()这个函数,该函数只存在于c++中。

有些人说用gets,但是这个函数是不安全的,gets不知道字符串的大小,容易造成溢出的问题。

解决方案,使用fgets函数

其关键在于在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束。因此,通过设置适当大小的缓冲区,即可实现读取一行的功能。

  1. #include "stdio.h"
  2. int main(int argc,char** argv)
  3. {
  4. FILE *fp;
  5. char load_file[256];
  6. char line[1000];
  7. scanf("%s",load_file);
  8. fp=fopen(load_file,"r");
  9. if(fp==NULL)
  10. {
  11. printf("can not load file!");
  12. return 1;
  13. }
  14. while(!feof(fp))
  15. {
  16. fgets(line,1000,fp);
  17. }
  18. printf("%s",line);
  19. fclose(fp);
  20. return 0;
  21. }

发表评论

表情:
评论列表 (有 0 条评论,852人围观)

还没有评论,来说两句吧...

相关阅读