#include <stdio.h>
#include <stdlib.h>
/*
// 读取文本文件
int main(){
char * path = "/Users/shaoshuaima/workspace/xcode/c_01/c_01/files/friends.txt";
FILE *fp = fopen(path, "r");
if (fp == NULL) {
printf("文件打开失败...");
return 0;
}
// 读取
char buff[50]; // 缓冲
while (fgets(buff,50,fp)) {
printf("%s",buff);
}
// 关闭
fclose(fp);
return 0;
}
*/
// 写入文本文件
/*
int main(){
char * path = "/Users/shaoshuaima/workspace/xcode/c_01/c_01/files/friends_new.txt";
FILE *fp = fopen(path, "w");
char * text = "我是一个好学生,abcde@123.com\n哈哈哈换行了";
fputs(text, fp);
// 关闭流
fclose(fp);
return 0;
}
*/
// 计算机的文件存储在物理上都是二进制
// 文本文件和二进制之分,其实是一个逻辑之分
// c读取b文本h文件与二进制文件d的差别仅体现在回车换行符
// 写文本时,每遇到一个'\n',会将其转换成'\r\n'(回车换行)
// 读文本时,每遇到一个'\r\n',会将其转换成'\n'
int main(){
char * read_path = "/Users/shaoshuaima/workspace/xcode/c_01/c_01/files/LogViewPro.exe";
char * write_path = "/Users/shaoshuaima/workspace/xcode/c_01/c_01/files/LogViewPro_new.exe";
// 读的文件 b字符表示操作二进制文件binary
FILE *read_fp = fopen(read_path,"rb");
// 写的文件
FILE *write_fp = fopen(write_path,"wb");
// 复制
int buff[50]; // 缓存区域
int len = 0; // 每次读取到的数据长度
while ((len = fread(buff, sizeof(int), 50, read_fp))!= 0) {
// 将读到的内容写入新的文件
fwrite(buff, sizeof(int), len, write_fp);
}
// 关闭流
fclose(read_fp);
fclose(write_fp);
return 0;
}