青岛设计网站公司,营销网站建站公司哪家好,哪个网站可预约做头发,门户网站建设投入C中文件可分为文本文件和二进制文件。
文件指针和FILE 类型
在C语言中#xff0c;FILE 类型是一个用于表示文件流的结构体类型。这个结构体在标准I/O#xff08;输入/输出#xff09;库中定义#xff0c;尽管其确切的内部结构对程序员是隐藏的#xff0c;也可能因不同的…C中文件可分为文本文件和二进制文件。
文件指针和FILE 类型
在C语言中FILE 类型是一个用于表示文件流的结构体类型。这个结构体在标准I/O输入/输出库中定义尽管其确切的内部结构对程序员是隐藏的也可能因不同的编译器实现而有所不同。FILE 结构体包含了所有用于文件操作的必要信息例如文件的位置指针、错误指示器、文件结束指示器等。
创建文件指针
使用 FILE 类型创建文件指针用于后续的文件操作。
FILE *fp;打开文件
使用 fopen 函数打开文件时会返回一个 FILE 类型的指针。
fp fopen(example.txt, r); // 打开文件用于读取
if (fp NULL) {// 错误处理
}读写文件
通过 FILE 类型的指针可以使用各种文件操作函数如 fprintf、fscanf、fgets、fputs、fread 和 fwrite 等。
fprintf(fp, Hello, World!); // 写入文件
char buffer[100];
fgets(buffer, 100, fp); // 从文件读取fprintf 和 fscanf
fprintf 函数用于向文件写入格式化的输出类似于 printf但输出到指定的文件流。
FILE *fp fopen(file.txt, w);
fprintf(fp, The value of pi: %f\n, 3.1416);
fclose(fp);fscanf 函数用于从文件读取格式化的输入类似于 scanf但从指定的文件流读取。
FILE *fp fopen(file.txt, r);
int age;
fscanf(fp, %d, age);
fclose(fp);fgets 和 fputs
fgets 函数用于从文件中读取一行它会读取直到换行符或文件结束或者读取到指定的字符数为止。
char buffer[100];
FILE *fp fopen(file.txt, r);
if (fgets(buffer, 100, fp) ! NULL) {printf(%s, buffer);
}
fclose(fp);fputs 函数用于向文件写入一个字符串但不包括空字符(‘\0’)
fread 和 fwrite
fread 函数用于从文件读取数据块。它适用于二进制文件或需要读取固定大小数据块的场合。
FILE *fp fopen(data.bin, rb);
char data[100];
size_t bytesRead fread(data, sizeof(char), 100, fp);
fclose(fp);fwrite 函数用于向文件写入数据块。它同样适用于二进制文件或需要写入固定大小数据块的场合。
FILE *fp fopen(data.bin, wb);
char data[100] Some data;
fwrite(data, sizeof(char), strlen(data), fp);
fclose(fp);FILE *fp fopen(file.txt, w);
fputs(Hello, World!, fp);
fclose(fp);关闭文件
文件操作完成后使用 fclose 关闭文件释放资源。
fclose(fp);文件定位
使用 fseek、ftell 和 rewind 等函数移动文件指针或获取当前位置。
fseek(fp, 0, SEEK_END); // 移动到文件末尾
long fileSize ftell(fp); // 获取文件大小
rewind(fp); // 回到文件开头举例
下面是一个简单的示例展示了如何在C语言中创建一个文件向其中写入一些文本然后读取并显示这些文本
#include stdio.hint main() {FILE *fp;// 打开文件用于写入fp fopen(test.txt, w);if (fp NULL) {perror(Error opening file);return -1;}fprintf(fp, Hello, file!\n);fclose(fp); // 关闭文件// 打开文件用于读取fp fopen(test.txt, r);if (fp NULL) {perror(Error opening file);return -1;}char buffer[100];fgets(buffer, 100, fp);printf(Read from file: %s, buffer);fclose(fp); // 关闭文件return 0;
}
注意上述代码在VS2015中报错的话改成fp fopen_s(fp,“test.txt”, “r”);即可