在 Linux 系统中,`stdio.h` 是 C 标准库中用于处理输入和输出的头文件,它提供了标准 I/O 函数的声明。这些函数包括文件操作、字符输入输出、字符串处理等功能。以下是一些 `stdio.h` 中最常用的函数和它们的用法:
文件操作函数
- `fopen`:打开一个文件并返回一个文件指针。
FILE *fopen(const char *filename, const char *mode);
- `fclose`:关闭一个打开的文件。
int fclose(FILE *stream);
- `fread`:从文件中读取数据。
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
- `fwrite`:将数据写入文件。
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
- `fseek`:设置文件的读写位置。
int fseek(FILE *stream, long offset, int whence);
- `ftell`:获取文件当前的读写位置。
long ftell(FILE *stream);
字符处理函数
- `fgetc`:从文件中读取一个字符。
int fgetc(FILE *stream);
- `fputc`:将一个字符写入文件。
int fputc(int c, FILE *stream);
- `fgets`:从文件中读取一行字符串。
char *fgets(char *str, int n, FILE *stream);
- `fputs`:将一个字符串写入文件。
int fputs(const char *str, FILE *stream);
格式化输入输出函数
- `fprintf`:将格式化的数据写入文件。
int fprintf(FILE *stream, const char *format, ...);
- `fscanf`:从文件中读取格式化的数据。
int fscanf(FILE *stream, const char *format, ...);
- `printf`:将格式化的数据输出到标准输出(通常是终端)。
int printf(const char *format, ...);
- `scanf`:从标准输入读取格式化的数据。
int scanf(const char *format, ...);
文件指针和EOF
- `EOF`:表示文件结束。
#define EOF (-1)
示例程序
下面是一个示例程序,演示了如何使用这些标准 I/O 函数:
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "w");
if (fp == NULL) {
printf("Error opening file.\n");
return 1;
}
fprintf(fp, "Hello, world!\n");
fclose(fp);
fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("Error opening file.\n");
return 1;
}
char buffer[100];
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
解释:
1. 文件打开:用 `fopen` 打开 `example.txt` 文件以进行写入。
2. 写入文件:用 `fprintf` 向文件写入字符串。
3. 文件关闭:用 `fclose` 关闭文件。
4. 重新打开文件:用 `fopen` 以只读模式重新打开文件。
5. 读取文件:用 `fgets` 从文件中读取每一行,并用 `printf` 输出到标准输出。
6. 关闭文件:用 `fclose` 关闭文件。
这个程序展示了基本的文件操作和格式化 I/O 操作。如果你需要更复杂的功能,可以参考 `stdio.h` 的文档或其他 C 语言的资源。