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; }