c语言笔记 fgets
fgets 是 C语言中的一个标准输入输出函数,用于从输入流(如文件、键盘等)读取一行字符串。它的名字来源于 "File GeT Sring",表示从文件中读取字符串。
fgets 的函数原型如下:
char *fgets(char *str, int n, FILE *stream);
参数说明
- str
- n
- stream
stdin、标准输出
stdout、标准错误
stderr,或者是通过
fopen 打开的文件指针。
返回值
- 如果成功读取字符串,fgets 会返回 str 指针。
- 如果到达文件末尾(EOF)或发生读取错误,则返回 NULL。
示例代码
1. 从键盘读取字符串```c
#include <stdio.h>
int main()
{
char buffer[100];
printf("请输入一行字符串:");
if (fgets(buffer, 100, stdin) != NULL)
{
printf("你输入的字符串是:%s", buffer);
}
else
{
printf("读取输入失败!\n");
}
return 0;
2. 从文件读取字符串
#### 2. 从文件读取字符串
```c
#include <stdio.h>
int main() {
FILE *;
file char buffer[100];
file = fopen("example.txt", "r");
if (file == NULL) {
perror("无法打开文件");
return 1;
}
printf("文件内容如下:\n");
while (fgets(buffer, 100, file) != NULL) {
printf("%s", buffer);
}
fclose(file);
return 0;
}
注意事项
和 gets 的区别
- gets
是一个不安全的函数,因为它不会检查缓冲区的大小,容易导致缓冲区溢出。
- fgets
是更安全的选择,因为它允许指定最大读取长度。