C语言文件操作
2015-12-03 22:57 AB小博客 阅读(397) 评论(0) 收藏 举报/*使用文件的方式
r:只读 ,如果文件不存在 出错
w:只写,如果文件不存在 建立新文件
a:追加,向文本文件末尾添加数据
rb表示以二进制方式读取,如果文件不存在 出错
r表示以文本方式读取
wb:只写,如果文件不存在 建立新文件
ab:追加,向二进制文件尾添加数据,如果文件不存在 出错
r+: 读写,如果文件不存在 出错
w+: 读写,如果文件不存在 建立新文件
a+: 读写,如果文件不存在 出错
rb+:读写,如果文件不存在 出错
wb+:读写,如果文件不存在 建立新文件
ab+:读写 如果文件不存在 出错*/
写入文件
写入单个字符 fputc('C', file);
char *filePath = "/Users/mac/Desktop/5.txt";
char *mode = "a";
FILE *file = fopen(filePath, mode); //打开文件路径 打开类型 w写write r读read a追加append
//写文件
if (file) {
printf("打开成功!");
}else{
printf("打开失败!");
}
char *content = "Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! "; 要写入的字符串
long len = strlen(content); //用strlen求出字符串的长度
一个一个写入进去
for (int i = 0; i<len; i++) {
fputc(content[i], file);
}
fputc('C', file); //写入一个字符 如果写入多个字符 可以用for循环
fclose(file); //关闭文件
写入字符串: fputs("写入的字符串", file);
读取文件
读取单个字符:fgetc(file)
关键字 fgetc(file) 一次读取一个字符 可以用for循环来读取文件 EOF是文件结尾
int a;
while ((a=fgetc(file))!=EOF) { //End Of File
putchar(a); //注意 (a=fgetc(file))!=EOF EOF是文件结尾
}
读取特定长度字符:
char str[50];
fgets(str, 20, file); 读取前20个字符
printf("%s",str);
重命名和 删除文件
rename(filePath, "/Users/mac/Desktop/5.txt"); //文件重命名 前提是打开文件
remove("/Users/mac/Desktop/5.txt"); //删除里面填写文件路径
//文件复制
char *oldFileStr = "/Users/mac/Desktop/05.png";
char *newFileStr = "/Users/mac/Desktop/2.png";
FILE *oldFile,*newFile;
//read binary rb
//write binary wb
//tr text read
oldFile = fopen(oldFileStr, "rb");//以二进制 读
newFile = fopen(newFileStr, "wb");//以二进制 写
char buffer[MAX_LEN]; //申请一个缓冲区 1024
while (!feof(oldFile)) {
fread(buffer, 1, MAX_LEN, oldFile); //读取 1为每次读取多少个 每次读取1024字节 可以直接用1
fwrite(buffer, 1, MAX_LEN, newFile);//写入
}
fclose(newFile);
fclose(oldFile);
查看文件大小
FILE *f = fopen("/Users/mac/Desktop/05.png", "rb");
fseek(f, 0, SEEK_END); //告诉计算机文件的位置
long size = ftell(f); //获得文件大小
printf("%ld\n",size);
fclose(f);
浙公网安备 33010602011771号