C 如何读取文件的一行
答案:2 悬赏:40 手机版
解决时间 2021-01-29 13:16
- 提问者网友:伴风望海
- 2021-01-28 22:19
C 如何读取文件的一行
最佳答案
- 五星知识达人网友:有你哪都是故乡
- 2021-01-28 22:33
C语言获得一行的数据还是比较麻烦的,这里讲一下几种曾经用过的方法。
第一种,是最笨的方法,就是一个一个字符的读取,也是最容易想到的方法。具体实现如下:
void read_line(char line[]){FILE *fp;char cChar;int i;fp=fopen("read.txt","r");i=0;cChar=fgetc(fp);
while(cChar!='\n' && !feof(fp)){line[i]=cChar;i++;cChar=fgetc(fp);}line[i]='\0';return;}但是,这种方法效率比较低。
第一种,是最笨的方法,就是一个一个字符的读取,也是最容易想到的方法。具体实现如下:
void read_line(char line[]){FILE *fp;char cChar;int i;fp=fopen("read.txt","r");i=0;cChar=fgetc(fp);
while(cChar!='\n' && !feof(fp)){line[i]=cChar;i++;cChar=fgetc(fp);}line[i]='\0';return;}但是,这种方法效率比较低。
全部回答
- 1楼网友:大漠
- 2021-01-29 00:01
c语言获得一行的数据还是比较麻烦的,这里讲一下几种曾经用过的方法。 第一种,是最笨的方法,就是一个一个字符的读取,也是最容易想到的方法。具体实现如下: void read_line(char line[]){file *fp;char cchar;int i;fp=fopen("read.txt","r");i=0;cchar=fgetc(fp); while(cchar!='\n' && !feof(fp)){line[i]=cchar;i++;cchar=fgetc(fp);}line[i]='\0';return;}但是,这种方法效率比较低。 第二种,就是使用linux环境下,有一个函数getline,说明如下: #define _gnu_source #include <stdio.h #include <stdlib.h int main(void){file * fp;char * line = null; size_t len = 0; ssize_t read; fp = fopen("/etc/motd", "r"); if (fp == null) exit(exit_failure); while ((read = getline(&line, &len, fp)) != 1) { printf("retrieved line of length %zu :\n", read); printf("%s", line);}if (line)free(line); return exit_success;}第三种,如果使用c++的话,有一个方法比较简单 ifstream in("read.txt"); string line;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯