读取文本文件
void main(){
char *path = "J:\\User.xml";
//打开
FILE *fp =fopen(path, "r");
if (fp == NULL){
printf("文件打开失败");
return;
}
//读取s
char buff[50];//缓冲
while (fgets(buff, 50, fp)){
printf("%s", buff);
}
fclose(fp);
getchar();
}
写入文本文件
void main(){
char * path = "J:\\hello.txt";
FILE *fp = fopen(path, "w");
char *text = "2018年9月12日 21:17:44";
fputs(text, fp);
fclose(fp);
getchar();
}
计算机的文件存储在物理上都是二进制
文本文件和二进制之分,其实是一个逻辑之分
C读写文本文件与二进制文件的差别仅仅体现在回车换行符
写文本时,每遇到一个'\n',会将其转换成'\r\n'(回车换行)
读文本时,每遇到一个'\r\n',会将其转换成'\n'
文件复制
void main(){
char *readPath = "J:\\1.jpg";
char *writePath = "J:\\2.jpg";
//r读的文件 b字符表示操作二进制文件binary
FILE *read_fp = fopen(readPath, "rb");
//写的文件
FILE * write_fp = fopen(writePath, "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);
getchar();
}
获取文件的大小
void main(){
char *read_path = "J:\\1.jpg";
FILE *fp = fopen(read_path, "r");
//重新定位文件指针
//SEEK_END文件末尾,0偏移量
fseek(fp, 0, SEEK_END);
//返回当前的文件指针,相对于文件开头的位移量
long filesize = ftell(fp);
printf("%d\n", filesize);
getchar();
}
网友评论