在C语言中,我们可以使用标准库中的文件操作函数来调用文本文件,这些函数包括:fopen、fclose、fread、fwrite、fgets、fputs、fseek、ftell等,下面我们将详细介绍如何使用这些函数来读取和写入文本文件。
1、打开文件
要读取或写入一个文件,首先需要使用fopen函数打开它,fopen函数的原型如下:
FILE *fopen(const char *filename, const char *mode);
filename是文件名,mode是文件打开模式,常用的文件打开模式有:
"r":以只读方式打开文件。
"w":以写方式打开文件,如果文件不存在则创建新文件,如果文件存在则清空文件内容。
"a":以追加方式打开文件,如果文件不存在则创建新文件,如果文件存在则在文件末尾追加内容。
"r+":以读写方式打开文件。
"w+":以读写方式打开文件,如果文件不存在则创建新文件,如果文件存在则清空文件内容。
"a+":以读写方式打开文件,如果文件不存在则创建新文件,如果文件存在则在文件末尾追加内容。
要以只读方式打开名为"input.txt"的文件,可以使用以下代码:
FILE *file = fopen("input.txt", "r"); if (file == NULL) { printf("无法打开文件! "); return 1; }
2、读取文件内容
使用fread函数可以读取文件中的数据,fread函数的原型如下:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
ptr是指向缓冲区的指针,size是每个数据项的大小,count是要读取的数据项个数,stream是输入流,fread函数会从文件中读取count个数据项,每个数据项的大小为size字节,并将它们存储到ptr指向的缓冲区中,返回值是实际读取的数据项个数。
要读取一个整数数组,可以使用以下代码:
int arr[10]; size_t n = fread(arr, sizeof(int), 10, file); if (n != 10) { printf("读取数据失败! "); return 1; }
3、写入文件内容
使用fwrite函数可以将数据写入文件中,fwrite函数的原型如下:
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
ptr是指向缓冲区的指针,size是每个数据项的大小,count是要写入的数据项个数,stream是输出流,fwrite函数会将ptr指向的缓冲区中的count个数据项,每个数据项的大小为size字节,写入到stream指定的文件中,返回值是实际写入的数据项个数。
要将一个整数数组写入到文件中,可以使用以下代码:
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; size_t n = fwrite(arr, sizeof(int), 10, file); if (n != 10) { printf("写入数据失败! "); return 1; }
4、关闭文件
使用fclose函数可以关闭一个已打开的文件,fclose函数的原型如下:
int fclose(FILE *stream);
stream是输入/输出流,fclose函数会关闭stream指定的文件,并释放与该文件相关的资源,返回值是0表示成功关闭文件,非0表示关闭失败,通常我们会检查fclose函数的返回值,以确保文件已正确关闭。
int result = fclose(file); if (result != 0) { printf("关闭文件失败! "); return 1; }
我们可以使用C语言的标准库中的文件操作函数来调用文本文件,通过打开、读取、写入和关闭文件,我们可以实现对文本文件的基本操作,在实际编程中,我们还需要根据具体需求对这些基本操作进行组合和扩展,以满足各种复杂的功能需求。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/427912.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复