【C语言】如何将数据写入文件?

时间:2024-03-27 07:27:27

如何将数据写入文件?

在C语言中,你可以使用标准库中的函数将数据写入文件。以下是一些常用的方法:

使用 fprintf() 写入格式化数据

fprintf() 函数类似于 printf(),但它将数据写入文件而不是输出到标准输出。

c复制代码

#include <stdio.h>
int main() {
FILE *file;
int number = 42;
float f = 3.14;
char str[] = "Hello, world!";
file = fopen("output.txt", "w"); // 以写入方式打开文件
if (file == NULL) {
perror("Error opening file");
return 1;
}
// 向文件中写入数据
fprintf(file, "Number: %d, Float: %f, String: %s\n", number, f, str);
fclose(file); // 关闭文件
return 0;
}

在上面的代码中,fprintf() 将格式化字符串和变量值写入文件。

使用 fwrite() 写入二进制数据

如果你需要写入二进制数据或大量的数据块,可以使用 fwrite() 函数。

c复制代码

#include <stdio.h>
int main() {
FILE *file;
int numbers[] = {1, 2, 3, 4, 5};
size_t count = sizeof(numbers) / sizeof(numbers[0]);
file = fopen("binary_output.bin", "wb"); // 以二进制写入方式打开文件
if (file == NULL) {
perror("Error opening file");
return 1;
}
// 向文件中写入二进制数据
size_t itemsWritten = fwrite(numbers, sizeof(int), count, file);
if (itemsWritten != count) {
fprintf(stderr, "Error writing to file\n");
return 1;
}
fclose(file); // 关闭文件
return 0;
}

在上面的代码中,fwrite() 将整数数组写入二进制文件。

使用 fputc() 写入单个字符

如果你需要逐个字符地写入文件,可以使用 fputc() 函数。

c复制代码

#include <stdio.h>
int main() {
FILE *file;
char ch = 'A';
file = fopen("char_output.txt", "w"); // 以写入方式打开文件
if (file == NULL) {
perror("Error opening file");
return 1;
}
// 向文件中写入单个字符
fputc(ch, file);
fclose(file); // 关闭文件
return 0;
}

注意事项

  • 使用 fopen() 打开文件时,确保选择正确的模式(如 "w" 表示写入,如果文件已存在则覆盖;"a" 表示追加,如果文件已存在则在文件末尾添加内容)。
  • 在写入文件后,使用 fclose() 关闭文件以释放资源。
  • 检查 fwrite() 和其他写入函数的返回值以确保数据成功写入。

这些是从C语言中将数据写入文件的基本方法。根据你的具体需求和数据类型,你可能需要选择最适合你的方法。