Linux C语言标准输入输出(3)

  这段代码打开文件 hello.txt,并使用 fgetc 函数将文件中的内容一个字节一个字节地取出,同时使用 fputc 函数将该字节写到标准输出流中,直到文件结束。

九、fgets 和 gets 函数

  fgets 函数从输入文件流 stream 里读取一个字符串,并存放到缓冲区中,一次��取的字符个数有限制。

#include <stdio.h>

char *fgets(char *s,int n,FILE *stream);
char *gets(char *s);

  fgets 函数把读到的字符写到 s 指向的字符串里,直到:

1)遇到换行符,则停止读入字符,并将遇到的换行符一起传递给接收字符串,再加上一个表示结尾的空字节 \0;

2)已经传输了 n-1 个字符,则加上一个空字节 \0 结尾后,停止读入字符;

3)到达文件尾(EOF)。

  当成功调用函数时,fgets 返回一个指向字符串 s 的指针。如果文件流已经到达文件尾,fgets 会设置这个文件流的 EOF 标识并返回一个空指针;如果调用函数出错,则 fgets 返回一个空指针并设置 errno 以指出错误的类型。

  gets 函数类似于 fgets,只不过它直接从标准输入(stdin)读取数据并丢弃了遇到的换行符,它在接收字符串的尾部加上一个 null 字节、另外,需要注意的是,gets 函数并没有对传输字符的个数做限制,所以它可能会溢出自己的传输缓冲区。因此,一般来说,推荐使用 fgets 函数来替代 gets 函数。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/0907621db02809e6e26a0240fa8c246d.html