1、创建文件
要使用C语言创建文件,可以使用fopen()
,此方法返回一个文件指针:文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL
,并把错误代码存在errno
中。
例如,
#include<stdio.h> void CreateFile() { //文件指针 FILE *fileP; char fileName[] = "hello.txt"; //保存在工程目录下 //使用“读入”方式打开文件 fileP = fopen(fileName, "r"); //如果文件不存在 if (fileP == NULL) { //使用“写入”方式创建文件 fileP = fopen(fileName, "w"); } //关闭文件 fclose(fileP); } void main() { CreateFile(); system("pause"); }
注意:要在特定目录中创建文件(需要权限),需要指定文件的路径,并使用双反斜杠转义“\”
字符(对于Windows)。在Mac和Linux上,只需编写路径即可,例如:/Users/cjavapy/filename.txt
2、写文件
写文件使用fwrite()
方法,将一些文本写入我们在上面的示例中创建的文件中。完成写入文件后,注意应使用fclose()
方法将其关闭。
例如,
#include<stdio.h> #define set_s(x,y) {strcpy(s[x].name,y);s[x].size=strlen(y);} #define nmemb 3 struct test { char name[20]; int size; } s[nmemb]; int main() { FILE * stream; set_s(0,"Linux!"); set_s(1,"FreeBSD!"); set_s(2,"Windows2000."); stream=fopen("/tmp/fwrite","w"); fwrite(s,sizeof(struct test),nmemb,stream); fclose(stream); return 0; }
1)使用 fprintf()
和 fputs()
写入文
#include <stdio.h> int main() { // 1. 打开文件(若文件不存在,将自动创建) FILE *file = fopen("example.txt", "w"); // 检查文件是否成功打开 if (file == NULL) { printf("Error opening file!\n"); return 1; } // 2. 使用 fprintf() 将格式化字符串写入文件 fprintf(file, "This is a line of text.\n"); fprintf(file, "Number: %d, Float: %.2f\n", 42, 3.14); // 3. 使用 fputs() 写入字符串(不包含格式化) fputs("This is another line.\n", file); // 4. 关闭文件 fclose(file); printf("Data written successfully to example.txt\n"); return 0; }
2)使用 fwrite()
写入二进制数据
#include <stdio.h> #include <string.h> int main() { // 打开文件用于二进制写入 FILE *file = fopen("data.bin", "wb"); if (file == NULL) { printf("Error opening file!\n"); return 1; } // 要写入的数据 int numbers[] = {1, 2, 3, 4, 5}; size_t count = sizeof(numbers) / sizeof(numbers[0]); // 使用 fwrite() 将数组写入文件 fwrite(numbers, sizeof(int), count, file); // 关闭文件 fclose(file); printf("Binary data written successfully to data.bin\n"); return 0; }
文件写入还有其它函数,可以参考下面的文档,
相关函数:C语言File文件处理相关函数
3、检查文件是否成功打开
在文件操作中,必须检查 fopen()
是否成功打开文件,否则操作会出错。
#include <stdio.h> int main() { // 打开文件用于写入(如果文件不存在,则创建它) FILE *file = fopen("example.txt", "w"); // 检查文件是否成功打开 if (file == NULL) { perror("Error opening file"); return 1; // 返回错误码 } // 使用 fprintf 写入文本内容 fprintf(file, "Hello, World!\n"); fprintf(file, "This is a test file.\n"); // 关闭文件以确保内容写入磁盘 fclose(file); printf("File created and data written successfully.\n"); return 0; // 成功返回 0 }