int main(){
FILE *fp=fopen("C://Users//wdh//Desktop//1.txt","r");
char c=0;
while((c=fgetc(fp))!=EOF){
if(c<' '||c>'~') c='#';
cout<<c;
}
return 0;
}
int main(){
FILE *fp=fopen("C://Users//wdh//Desktop//1.txt","r");
char ch[1024];
while(!feof(fp)){//逐行读取,直到文件结束
fgets(ch,sizeof(ch),fp);//读取sizeof(ch)-1个字符到ch中
//cout<<ch<<endl;//多一行空行
cout<<ch;
}
fclose(fp);
return 0;
}
int main(){
FILE *fp=fopen("C://Users//wdh//Desktop//1.txt","w");
char ch='a';
int n=fputc(ch,fp);//原文件被ch覆盖
cout<<n;//n=97--'a'
fclose(fp);
return 0;
}
int main(){
FILE *fp=fopen("C://Users//wdh//Desktop//1.txt","w");
char ch='a';
fputc(ch,fp);
fputc(ch,fp);
fputc(ch,fp);//写入三个a
fclose(fp);
return 0;
}
int main(){
FILE *fp=fopen("C://Users//wdh//Desktop//1.txt","w");
char ch[1024]="asdfghjkl";
char ch2[1024]="qwertyuiop";
fputs(ch,fp);
fputs("\n",fp);//换行
fputs(ch2,fp);
fputs(ch,fp);
fclose(fp);
return 0;
}
int main(){
FILE *fp=fopen("C://Users//wdh//Desktop//1.txt","a");
//在文件尾追加
char ch[1024]="asdfghjkl";
char ch2[1024]="qwertyuiop";
fputs(ch,fp);
fputs("\n",fp);//换行
fputs(ch2,fp);
fputs(ch,fp);
fclose(fp);
return 0;
}
//将一个文件fp1的内容复制到另一个文件fp2中去。
int main(){
FILE *fp1=fopen("C://Users//wdh//Desktop//1.txt","r");
FILE *fp2=fopen("C://Users//wdh//Desktop//2.txt","w");
char c;
while((c=fgetc(fp1))!=EOF){
fputc(c,fp2);//逐字写入
}
fclose(fp1);
fclose(fp2);
return 0;
}
//按十进制和字符显示文件代码,若遇不可示字符就用井号"#"字符代替之。
int main(){
FILE *fp1=fopen("C://Users//wdh//Desktop//1.txt","r");
char c;
while((c=fgetc(fp1))!=EOF){
if(c<' '||c>'~') c='#';
printf("%-4d %c\n",c,c);//左对齐
}
fclose(fp1);
return 0;
}
//往文件中写格式化数据
int main(){
FILE *fp1=fopen("C://Users//wdh//Desktop//1.txt","w");
char name[20];
int age,grade,weight;
//fscanf(stdin,"%s %d %d",name,&age,&grade);//在屏幕上输入
while(scanf("%s",name)!=EOF){
scanf("%d %d %d",&age,&grade,&weight);
getchar();
fprintf(fp1,"%s||%4d||%4d||%4d***\n",name,age,grade,weight);
//按照格式写入文件
fprintf(stdout,"%s||%4d||%4d||%4d***\n",name,age,grade,weight);
//格式化输出到屏幕
}
fclose(fp1);
return 0;
}
//以二进制形式读取文件中的数据
//求文件大小:读取文件到内存,然后跳转到文件末尾,查看跳转的长度
int main(){
FILE *fp1=fopen("C://Users//wdh//Desktop//1.txt","rb");//打开二进制文件
fseek(fp1,0,SEEK_END);//随机定位,跳到基于ESSK_END的位移0处——文件结尾
int size=ftell(fp1);//取得文件当前位置,相较于文件开头
cout<<size<<endl;
rewind(fp1);//跳回开头
char *buf;
buf=(char*)malloc(sizeof(char)*size);
int n=fread(buf,1,size,fp1);//存入buf,每个数据块1个字节,一共读size个数据块
cout<<buf;
fclose(fp1);
return 0;
}//但是在vs08中buf输出仍有乱码,dev中正确
//以二进制形式写数据到文件中去
int main(){
FILE *fp1=fopen("C://Users//wdh//Desktop//1.txt","wb");//打开二进制文件
char buf[20]="hello world!!!";
int n=fwrite(buf,sizeof(buf),1,fp1);//每个数据块大小:sizeof(buf),一共1个数据块
cout<<n;//n是写成功的数据块数
return 0;
}
参考:C语言文件操作详解