1.fprintf函数:fprintf 是将源文件内的数据打印到文件中去,示例如下:
int fprintf(FILE *stream, const char *format, ...)
如果成功,则返回写入的字符总数,否则返回一个负数。
2.fscanf函数:fscanf函数是将文件的内容读取,然后给源文件的变量,用法如下:
int fscanf(FILE *stream, const char *format, ...)
如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。
3.ftell函数:ftell函数计算光标到开头的字节数:
long int ftell(FILE *stream)
返回一个int型结果。如果发生错误,则返回 -1L,全局变量 errno 被设置为一个正值
4.fseek函数:fseek函数会将光标移动到指定的地方,主要用于该变文件的内容,用法如下:
int fseek(FILE *stream, long int offset, int whence)
结合今天所学的内容,做了一个练习题,题目如下:
在两个文件中各输入一串字母,然后拼接排序后写到一个新的文件中,代码如下:
#include<stdio.h>
int main(){
char temp;
int s,k;
int i=0;
char l[30]={'\0'};
char l1[30]={'\0'};
FILE *pf=fopen("./fuck.txt","w+");
FILE *pv=fopen("./fuck1.txt","w+");
FILE *po=fopen("./fuck2.txt","w+");
if(pf==NULL || pv==NULL || po==NULL){
printf("error");
}
fputs("abfgj",pf);
fputs("fghij",pv);
rewind(pf);
fscanf(pf,"%s",l);
puts(l);
rewind(pv);
fscanf(pv,"%s",l1);
strcat(l,l1);
int d=strlen(l);
for(s=0;s<d-1;s++){
for(k=0;k<d-1-s;k++){
if(l[k]>l[k+1]){
temp=l[k];
l[k]=l[k+1];
l[k+1]=temp;
}
}
}
fprintf(po,"%s",l);
return 0;
}
运行结果如下:
注意打开文件时的文件路径问题,不要写错,不然排错很困难,然后,取出 字符串后用strcat函数拼接,送到第三个数组中,然后写入一个新的文件就好。