1、使用标准库函数fopen和fprintf
使用fopen
和fprintf
实现比较简单,易于理解和实现。支持格式化输出,方便处理复杂的数据结构。
#include <stdio.h>
int main() {
FILE *file = fopen("example1.txt", "w"); // 以写入模式打开文件
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
fprintf(file, "Hello, World!\n"); // 写入文本内容
fprintf(file, "This is a test file.\n");
fclose(file); // 关闭文件
printf("执行完成");
return 0;
}
2、使用标准库函数fopen和fputs
使用fopen
和fputs
适用于写入字符串,比fprintf更高效。代码简洁,易于维护。
#include <stdio.h>
int main() {
FILE *file = fopen("example2.txt", "w");
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
fputs("Hello, World!\n", file); // 使用 fputs 写入字符串
fputs("This is another test file.\n", file);
fclose(file);
printf("执行完成");
return 0;
}
3、使用标准库函数fopen和fwrite
使用fopen
和fwrite
适用于二进制和文本数据的写入。提供了更底层的控制,可以精确控制写入的数据量。
#include <stdio.h>
#include <string.h>
int main() {
FILE *file = fopen("example3.txt", "w");
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
const char *text = "Hello, World!\nThis is yet another test file.\n";
fwrite(text, sizeof(char), strlen(text), file); // 使用 fwrite 写入数据
fclose(file);
return 0;
}
4、使用标准库函数freopen
使用freopen
可以重定向标准输出到文件,适用于需要将程序输出保存到文件的场景。代码简洁,易于实现。
#include <stdio.h>
int main() {
freopen("example4.txt", "w", stdout); // 重定向标准输出到文件
printf("Hello, World!\n"); // 使用 printf 输出到文件
printf("This file was created using freopen.\n");
fclose(stdout); // 关闭标准输出文件
return 0;
}
5、使用系统调用open和write(基于POSIX标准)
该方法提供了更底层的文件操作,性能更高。适用于需要精细控制文件操作的场景,如高性能服务器。每种方法都有其独特的优点,选择哪种方法取决于具体的应用场景和需求。
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
int main() {
int file = open("example5.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644); // 打开文件
if (file < 0) {
printf("无法打开文件\n");
return 1;
}
const char *text = "Hello, World!\nWriting with POSIX API.\n";
write(file, text, strlen(text)); // 使用 write 写入数据
close(file); // 关闭文件
return 0;
}