在前面我使用了fgetc来读取文件的字符,但是每次只能读一个,这也太慢了,因此就有了fgets/fputs这个函数,他可以每次读写取一行。
1、熟悉fgets函数;
2、熟悉fputs函数;
# C库函数-fgets C 库函数 char *fgets(char *str, int n, FILE *stream) 从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。 下面是 fgets() 函数的声明。
#includechar *fgets(char *s, int size, FILE *stream);
| s | 指向一个字符数组的指针,该数组存储了要读取的字符串 |
|---|---|
| size | 读取的最大字符数(包括最后的空字符) |
| stream | 指向 FILE 对象的指针 |
如果成功,该函数返回相同的 s 参数。如果到达文件末尾或者没有读取到任何字符,st的内容保持不变,并返回一个空指针。如果发生错误,返回一个空指针。
#includeint main() { char str[20]; FILE* fp = fopen("./1.txt","r"); if(NULL == fp) { printf("fopen errn"); return 1; } if((fgets(str,20,fp)) != NULL) { puts(str); } fclose(fp); return 0; }
C库函数-fputs
C库函数 int fputs(const char *str, FILE *stream) 把字符串写入到指定的流 stream 中,但不包括空字符。
下面是 fputs() 函数的声明:
#includeint fputs(const char *s, FILE *stream);
| s | 这是一个数组,包含了要写入的以空字符终止的字符序列 |
|---|---|
| stream | 这是指向 FILE 对象的指针 |
该函数返回一个非负值,如果发生错误则返回 EOF。
下面的实例演示了 fputs() 函数的用法:
#includeint main(int argc, char const *argv[]) { FILE* fp = fopen("fputs.txt","w+"); fputs("我是海贼王",fp); fputs("不是海王!",fp); fclose(fp); return 0; }



