C语言文件操作


fopen成功返回文件指针,失败返回null

fopen_s成功返回0,失败返回非0,并且参数加上&fp

fscanf用于拿出文件里的数据,即读取,参数相较scanf多了fp流

fscanf_s需要最后指定size,和scanf_s一样多了长度的制定(fp,format,size);

fprint用于往文件中写入内容(fp,format);

把format里面“”里的直接写在了后面


对于字符

向流输出:fputc(int,fp)//

用写和读写会清楚原有内容,从开始开始

用追加才是从末开始保留原有

不存在则会创建

putchar(int)错误返回eof,正确返回字符

先用两个getchar然后while(ch!=eof),fputc(ch,fp),getchar,循环。实现写入

输入函数,从文件中读取

int fgetc(fp) int getchar() 

ch = fgetc(fp);

while(ch!=eof)            //while(ch=getc(fp)!=eof)//末尾返回EOF

putchar(ch);

ch=fgetc(fp)

//while(ch!=eof) chrl+z

ch=fgtc(fp)

putchar(ch)

这样来进行读取


fputs(“something”,fp)//没有f不需要fp

错误返回rof,否则返回非负数


fgets(str,sizeof(str),fp)//可以避免scanf的空格

逐个读入字符,直到遇到换行符或者读了size-1个


fread和fwrite用于大的数据块

fwrite(a,sizeof(a【0】),sizeof(a)/sizeof(a【0】),fp)

fread类似,第三个为读入几次,用于结构体特别有用//从流读入数组,循环

先用循环fread写入,再正常的printf

fwrite(&stu【i】,sizeof(struct student-type),1,fp)

循环

fseeek则是找位置



#include <stdio.h>

#include <stdlib.h>


int main()
{
    FILE *fin;
int a[20];
char filename[] = "E:\\sort.txt";
fin = fopen( filename, "r+");
if (fin==NULL) {
printf("read_file(): 打开文件%s失败!\n", filename);
exit(0);
}
else {
printf("read_file(): 成功打开文件%s!\n", filename);
}
int i = 0;
for (i = 0; i < 9; i++) {
fscanf(fin, "%d", &a[i]);//将文件内的写入数组
}
for (i = 0; i < 9 ; i++) {
printf("%d\t", a[i]);
}
fclose(fin);
    printf("Hello world!\n");
    return 0;

}



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号