//允许使用过时的函数和不安全的函数,去掉警告
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//内容一:读取文件(文本文件)
/*
int main(){
char file_path[] = "C:\\Users\\Administrator\\Desktop\\aa.txt";
//r w rw
FILE *file = fopen(file_path,"r");
//判断一下文件是否为空
if (file == NULL){
printf("当前文件不存在");
return 0;
}
//存在---读取内容
//定义缓冲区(C++,Java,OC,Swift,ASP.NET)
char buffer[100];
//参数一:代表缓冲区
//参数二:每次读取的长度(注意:不能超过缓冲区的大小),
//参数三:源文件
//返回值:字符指针(如果返回'\0',否则存在)
while (fgets(buffer,100,file)){
//打印
//注意:不需要加换行符
//在我们的C语言中,文本文件和二进制文件
printf("%s",buffer);
}
//关闭流
fclose(file);
getchar();
return 0;
}
*/
//内容二:写入文件 --(文本文件)
/*
int main(){
//写文件的路径
char file_path[] = "C:\\Users\\Administrator\\Desktop\\a.txt";
//首先需要打开文件
FILE *file = fopen(file_path, "w");
//字符串(字符数组)
char content[] = "I Have a Dream";
//参数一:写入的内容
//参数二:源文件
fputs(content,file);
//关闭流
fclose(file);
getchar();
return 0;
}
*/
//内容三:二进制文件的读取
//计算机中分为了二进制文件和文本文件(逻辑上划分)
//对于计算机本身而言都是二进制
//二进制和文本文件区别?
//答:就在于换行符不一样
//文本文件:写入文件,每当遇到'\n',会将其转成'\r\n'(回车换行)
// 读取文本:每当遇到'\r\n',就会将其转成'\n'
//二进制文件:复制(类似于java)
/*
int main(){
//将文件的内容写到另一个文件中(边读边写)
//定义源文件
char old_file_path[] = "C:\\Users\\Administrator\\Desktop\\test.txt";
//定义目标文件
char new_file_path[] = "C:\\Users\\Administrator\\Desktop\\test_new.txt";
//打开源文件
//rb:代表读取二进制文件
FILE *old_file_p = fopen(old_file_path,"rb");
//打开目标文件
//wb:代表写入二进制文件
FILE *new_file_p = fopen(new_file_path, "wb");
//边读边写
//定义缓冲区
int buffer[50];
//记得我们在Java中读取文件的时候,我们是不是得定义一个读取多长
//C语言和Java一样
int len = 0;
//fread方法参数一:代表缓冲区
// 参数二:单位大小
// 参数三:每次读取的长度
// 参数四:源文件
while((len = fread(buffer,sizeof(int),50,old_file_p))!=0){
//写入到目标文件
//参数一:缓冲区
//参数二:单位大小
//参数三:每次读取的长度
//参数四:目标文件
fwrite(buffer,sizeof(int),len,new_file_p);
}
//关闭流
fclose(new_file_p);
fclose(old_file_p);
getchar();
return 0;
}
*/
//内容四:获取文件的大小
int main(){
//定义源文件(25字节)
char old_file_path[] = "C:\\Users\\Administrator\\Desktop\\test.txt";
//打开文件
FILE *file = fopen(old_file_path,"rb");
//在C语言中可以将指针指向最后一个字节
//通过一个函数,将文件指针移动到文件的最后一个位置
//参数一:源文件
//参数二:偏移量(倒数第几个) 右:+1 后(左):-1
//参数三:位置标记(SEEK_END:表示文件指针移动到最后一个位置)
//一旦调用这个方法,指针立马移动到指定的位置
fseek(file,0,SEEK_END);
//获取到文件的大小:ftell(当前文件指针指向的位置)
long fileSize = ftell(file);
printf("文件大小:%ld:\n",fileSize);
getchar();
return 0;
}
//获取文件的长度:
int main(){
//定义源文件(25字节)
char old_file_path[] = "C:\\Users\\Administrator\\Desktop\\test.txt";
//打开文件
FILE *file = fopen(old_file_path,"rb");
//在C语言中可以将指针指向最后一个字节
//通过一个函数,将文件指针移动到文件的最后一个位置
//参数一:源文件
//参数二:偏移量(倒数第几个) 右:+1 后(左):-1
//参数三:位置标记(SEEK_END:表示文件指针移动到最后一个位置)
//一旦调用这个方法,指针立马移动到指定的位置
fseek(file,0,SEEK_END);
//获取到文件的大小:ftell(当前文件指针指向的位置)
long fileSize = ftell(file);
printf("文件大小:%ld:\n",fileSize);
getchar();
return 0;
}