文件信息:
102102 zhang 91
102102 hx 85
103102 hou 76
102102 zhang 69
102105 hx 55
1.文件读fgetc()——字符方式读,与putchar
#include<stdio.h>
int main(){
FILE*fp;
fp=fopen("2.txt","r");
if(fp==NULL){
printf("打开失败");
}
char ch;
while((ch=fgetc(fp))!=EOF)
{
putchar(ch);
}
if((fclose(fp))==0){
printf("文件关闭成功\n");
}
return 0;
}
char ch;
printf("读取信息为:\n");
while(!feof(fp)){
ch=fgetc(fp);
putchar(ch);
}
2.文件读fgets()——字符串读
(1) char a[10];
fgets(a,5,stdin);//fgets(字符串名,字符串长度,标准输入流stdin)
printf("%s",a);
(2)单独读取一行
char a[100];
fgets(a,50,fp);//fgets(字符串名,字符串长度,标准输入流stdin)
printf("%s",a);
(3)全部读取
char a[10000];
while((fgets(a,1000,fp))!=NULL){
printf("%s",a);
}
3.文件读fscanf()——格式化方式读
#include<stdio.h>
int main(){
FILE*fp;
fp=fopen("2.txt","r");
if(fp==NULL){
printf("打开失败");
}
int i;
int num;
char name[10];
int score;
printf("读取信息为:\n");
for(i=0;i<5;i++){
fscanf(fp,"%d%s%d",&num,name,&score);
printf("%d\t%s\t%d\n",num,name,score);
}
if((fclose(fp))==0){
printf("文件关闭成功\n");
}
return 0;
}
4.文件读fread()——数据块方式读取文件
二进制文件 fread(buffer,size,count,fp)--bufffer存放输入数据的首地址,size数据块字节数,count要读写的数据块数,fp文件指针
char buffer[256];
int readCnt = fread(buffer,sizeof(buffer),1,fp); /* 返回值为0 */
//int readCnt = fread(buffer,1,sizeof(buffer),fp); /* 返回值为11 */
printf("%s",buffer);
5.文件写fputc()——fputc(字符,文件指针)
#include<stdio.h>
int main(){
FILE*fp;
fp=fopen("2.txt","a+");
if(fp==NULL){
printf("打开失败");
}
char a='a';
fputc(a,fp);
if((fclose(fp))==0){
printf("文件关闭成功\n");
}
return 0;
}
6.文件写fputs()——fputs(字符串,文件指针)
char a[]="hello world!";
fputs(a,fp);
7.文件写fprintf()——fprintf(文件指针,类型,名)
int a=10;
char name[]="hello world!";
int score=100;
fprintf(fp,"%d\t%s\t%d\n",a,name,score);