在C语言中,文件操作是通过标准库中的一系列函数来实现的,这些函数允许你创建、打开、读取、写入和关闭文件。以下是对这些操作的基本描述:
1. 打开文件
在C语言中,使用fopen()
函数来打开文件。该函数需要两个参数:文件路径和模式字符串,然后返回一个文件指针。如果打开文件失败,则返回NULL。
模式字符串可以是以下的一种或几种:
"r"
:只读模式,如果文件不存在则出错。"w"
:只写模式,如果文件不存在则创建,如果文件存在则清空文件内容。"a"
:追加模式,如果文件不存在则创建,如果文件存在则在文件末尾追加内容。"r+"
:读写模式,如果文件不存在则出错。"w+"
:读写模式,如果文件不存在则创建,如果文件存在则清空文件内容。"a+"
:读写模式,如果文件不存在则创建,如果文件存在则在文件末尾追加内容。
例如:
FILE *fp = fopen("example.txt", "w");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
2. 读取文件
有多种函数可以用于从文件中读取数据,如fgetc()
, fgets()
, fscanf()
等。
fgetc(fp)
:从文件指针fp
指向的文件中读取一个字符。fgets(str, n, fp)
:从文件指针fp
指向的文件中读取最多n-1
个字符(包括换行符)到字符串str
中。fscanf(fp, format, ...)
:从文件指针fp
指向的文件中按照指定的格式读取数据。
例如:
char ch;
while ((ch = fgetc(fp)) != EOF) {
putchar(ch);
}
3. 写入文件
同样,有多种函数可以用于将数据写入文件,如fputc()
, fputs()
, fprintf()
等。
fputc(ch, fp)
:将字符ch
写入到文件指针fp
指向的文件中。fputs(str, fp)
:将字符串str
写入到文件指针fp
指向的文件中。fprintf(fp, format, ...)
:将按照指定格式的数据写入到文件指针fp
指向的文件中。
例如:
char str[] = "Hello, world!";
fputs(str, fp);
4. 关闭文件
使用完文件后,应使用fclose()
函数关闭文件。这可以释放与文件关联的所有资源,并刷新所有挂起的输出。
例如:
fclose(fp);
如果文件在关闭时仍有未写入的数据,fclose()
会尝试将这些数据写入文件。如果写入失败,fclose()
会设置错误标志,但通常不会返回错误代码(除非在打开文件时设置了特定的标志)。因此,在调用fclose()
后,应检查错误标志以确定是否发生了错误。这可以通过ferror()
函数来完成。