字符读写函数是以字符(字节)为单位的读写函数。
每次可从文件读出或向文件写入一个字符。
1.
读字符函数fgetc
fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为:
字符变量=fgetc(文件指针);
例如:
ch=fgetc(fp)
其意义是从打开的文件fp中读取一个字符并送入ch中。
对于fgetc函数的使用有以下几点说明:
1)
在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。
2)
读取字符的结果也可以不向字符变量赋值,
例如:
fgetc(fp)
但是读出的字符不能保存。
3)
在文件内部有一个位置指针。用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc
函数后,该位置指针将向后移动一个字节。
因此可连续多次使用fgetc函数,读取多个字符。应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。
读入文件c1.doc,在屏幕上输出。
#include
char* add(char *s){
int i=0
char str[10]
FILE *fp
printf("input file name:\n")
scanf("%s",str)
fp=fopen(str,"r")//打开文件夹
if(fp==NULL) //检查是否正常打开
{
printf("can't open the file")
exit(0)
}//读取字符
while(!feof(fp))
{
s[i]=fgetc(fp)
i++
}
s[i]='\0'
fclose(fp)
return s
}
#include<stdio.h>
struct stu
{ char name[11]
int score
} a[100]
int i=0
void input()
{ FILE *fp
if((fp=fopen("cj.txt","r"))==NULL)
{ printf("File open error!\n")
return
}
while(fscanf(fp,"%s%d",a[i].name,&a[i].score)==2)
{ fgetc(fp)
i++
}
}
int main()
{ input()
int j
for(j=0j<ij++)
printf("%s %d\n",a[j].name,a[j].score)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)