C语言文件操作与相关函数介绍
什么是文件操作
在计算机中,文件是信息的集合,它通常存储在辅助存储设备上(例如磁盘、光盘等),以便长期保存和访问。文件操作是指对文件在内存和外存之间进行读取、写入、打开、关闭等操作的过程。
C语言中的文件操作
C语言提供了一组标准函数,用于对文件进行操作。这些函数包括:
- fopen(): 打开一个文件
- fclose(): 关闭一个文件
- feof(): 检查文件是否已经到达文件末尾
- fgetc(): 从文件中读取一个字符
- fputc(): 向文件中写入一个字符
- fgets(): 从文件中读取一行字符串
- fputs(): 向文件中写入一行字符串
- fprintf(): 格式化输出到文件
- fscanf(): 从文件读取格式化输入
下面,我们将分别对以上函数进行详细介绍,并给出示例。
fopen()
fopen函数用于打开一个文件,并返回一个表示该文件的文件指针。
FILE *fopen(const char *filename, const char *mode);
函数参数说明:
- filename:表示要打开的文件名
- mode:表示文件的打开方式,包括以下几种:
- r:以只读方式打开文件,文件必须存在
- w:以只写方式打开文件,如果文件存在则清空文件内容,如果不存在则创建文件
- a:以追加方式打开文件,如果文件存在则指针移到文件末尾,如果不存在则创建文件
- r+:以读写方式打开文件,文件必须存在
- w+:以读写方式打开文件,如果文件存在则清空文件内容,如果不存在则创建文件
- a+:以读写方式打开文件,如果文件存在则指针移到文件末尾,如果不存在则创建文件
示例:
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("test.txt", "w");
fprintf(fp, "Hello, World!");
fclose(fp);
return 0;
}
这个示例程序打开了文件test.txt,并向其中写入了一行字符串"Hello, World!",然后关闭文件。
fclose()
fclose函数用于关闭一个已经打开的文件。
int fclose(FILE *stream);
函数参数说明:
- stream:表示要关闭的文件指针
示例:
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("test.txt", "w");
fprintf(fp, "Hello, World!");
fclose(fp);
return 0;
}
这个示例程序打开了文件test.txt,并向其中写入了一行字符串"Hello, World!",然后关闭文件。注意,在使用完文件后,务必关闭文件,以释放系统资源。
feof()
feof函数用于判断一个文件是否已经到达文件末尾。
#include <stdio.h>
int main()
{
FILE *fp;
int c;
fp = fopen("test.txt", "r");
while ((c = fgetc(fp)) != EOF)
{
putchar(c);
}
if (feof(fp))
{
puts("已到文件末尾");
}
else
{
puts("未到文件末尾");
}
fclose(fp);
return 0;
}
这个示例程序打开了文件test.txt,读取其中的每一个字符,并在读取结束后判断文件是否已经到达文件末尾。注意,EOF常量表示文件末尾。
fgetc()
fgetc函数用于从文件中读取一个字符。
int fgetc(FILE *stream);
函数参数说明:
- stream:表示要读取的文件指针
示例:
#include <stdio.h>
int main()
{
FILE *fp;
int c;
fp = fopen("test.txt", "r");
c = fgetc(fp);
while (c != EOF)
{
putchar(c);
c = fgetc(fp);
}
fclose(fp);
return 0;
}
这个示例程序打开了文件test.txt,读取其中的每一个字符,并输出到屏幕上。
fputc()
fputc函数用于向文件中写入一个字符。
int fputc(int c, FILE *stream);
函数参数说明:
- c:表示要写入的字符
- stream:表示要写入的文件指针
示例:
#include <stdio.h>
int main()
{
FILE *fp;
int c;
fp = fopen("test.txt", "w");
fputc('H', fp);
fputc('e', fp);
fputc('l', fp);
fputc('l', fp);
fputc('o', fp);
fputc(',', fp);
fputc(' ', fp);
fputc('W', fp);
fputc('o', fp);
fputc('r', fp);
fputc('l', fp);
fputc('d', fp);
fputc('!', fp);
fclose(fp);
return 0;
}
这个示例程序创建了一个文件test.txt,并向其中写入一行字符串"Hello, World!"。
fgets()
fgets函数用于从文件中读取一行字符串。
char *fgets(char *str, int n, FILE *stream);
函数参数说明:
- str:表示用于存储读取结果的字符串指针
- n:表示最大读取的字符数,包括结尾的'\0'
- stream:表示要读取的文件指针
示例:
#include <stdio.h>
int main()
{
FILE *fp;
char str[50];
fp = fopen("test.txt", "r");
while (fgets(str, 50, fp) != NULL)
{
printf("%s", str);
}
fclose(fp);
return 0;
}
这个示例程序打开了文件test.txt,读取其中的每一行字符串,并输出到屏幕上。
fputs()
fputs函数用于向文件中写入一行字符串。
int fputs(const char *str, FILE *stream);
函数参数说明:
- str:表示要写入的字符串
- stream:表示要写入的文件指针
示例:
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("test.txt", "w");
fputs("Hello, World!\n", fp);
fputs("Hello, C Language!\n", fp);
fclose(fp);
return 0;
}
这个示例程序创建了一个文件test.txt,并向其中写入两行字符串。
fprintf()
fprintf函数用于格式化输出到文件。
int fprintf(FILE *stream, const char *format, ...);
函数参数说明:
- stream:表示要写入的文件指针
- format:表示要写入的格式化字符串,和printf函数中的字符串相同
- ...:表示格式化字符串中的格式化参数,和printf函数相同
示例:
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("test.txt", "w");
fprintf(fp, "%d %s\n", 100, "Hello, World!");
fclose(fp);
return 0;
}
这个示例程序创建了一个文件test.txt,并向其中写入一行格式化字符串"100 Hello, World!"。
fscanf()
fscanf函数用于从文件读取格式化输入。
int fscanf(FILE *stream, const char *format, ...);
函数参数说明:
- stream:表示要读取的文件指针
- format:表示要读取的格式化字符串,和printf函数中的字符串相同
- ...:表示格式化字符串中的格式化参数,和scanf函数相同
示例:
#include <stdio.h>
int main()
{
FILE *fp;
int num;
char str[20];
fp = fopen("test.txt", "r");
fscanf(fp, "%d %s", &num, str);
printf("%d %s\n", num, str);
fclose(fp);
return 0;
}
这个示例程序打开了文件test.txt,读取其中的一行格式化字符串"100 Hello, World!",并将其分别读取为整数和字符串,输出到屏幕上。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言文件操作与相关函数介绍 - Python技术站