您的位置 首页 > 数码极客

c如何读入文件的一列数

C++:

函数声明:

ssize_t getline(char **lineptr, size_t *n, file *stream);

成功,则返回(有符号整型)每行的字节数,包含结束符;否则返回-1

例子:

  1. #include<iostream>

  2. #include<;

  3. #include<uni;

  4. #include<dirent.h>

  5. #include<;

  6. #include<errno.h>

  7. #include<malloc.h>

  8. usingnamespace std;

  9. #define FILE_PATH "/home/tmp/te;

  10. #define BUFF_LEN 256

  11. int main()

  12. {

  13. FILE *fp = NULL;

  14. char *file = FILE_PATH;

  15. char *line = NULL;

  16. size_t line_len = BUFF_LEN;

  17. int len = 0;

  18. if( (0!=access(file,R_OK|F_OK)) || (NULL==(fp=fopen(file,"r"))) )

  19. {

  20. printf("open %s failed, errno=%d\n",file,errno);

  21. return -1;

  22. }

  23. while( (len=getline(&line,&line_len,fp))>0 )//逐行读取,如果line为NULL,则系统会自动malloc,所以用完记得free

  24. {

  25. printf("the content of each line is:\n%s",line);

  26. printf("the length of each line is: %d\n\n",len);

  27. }

  28. if(fp != NULL)

  29. {

  30. fclose(fp);

  31. fp = NULL;

  32. }

  33. if(line)

  34. {

  35. free(line); //记得释放资源

  36. }

  37. return 0;

  38. }

C语言:

char *fgets(char *buf, int bufsize, FILE *stream);

成功,则返回第一个参数buf;否则返回NULL

例子:

  1. #include<;

  2. #include<;

  3. #include<uni;

  4. #include<malloc.h>

  5. #define FILE_PATH "/home/tmp/te;

  6. #define BUFF_LEN 256

  7. int main()

  8. {

  9. FILE *fp = NULL;

  10. char *file = FILE_PATH;

  11. char *line = (char *)malloc(BUFF_LEN * sizeof(char));//和C++不同的是,事先要申请空间,否则报段错误

  12. if( (0 != access(file,R_OK|F_OK)) || (NULL==(fp=fopen(file,"r"))) )

  13. {

  14. printf("open %s failed\n",file);

  15. return -1;

  16. }

  17. while( fgets(line, BUFF_LEN, fp) != NULL )//逐行读取数据

  18. {

  19. printf("the content of each line is:\n%s",line);

  20. }

  21. if(fp!=NULL)

  22. {

  23. fclose(fp);

  24. }

  25. return 0;

  26. }

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“c如何读入文件的一列数”边界阅读