大四中软实习笔记201303011文件

1 文件的概念
printf    打印=输出                内存------------>显示器=stdout-------文件(文件指针)
scanf    录入=输入                内存<------------   键盘=stdin-------文件(文件指针)

fflush

1.1 将内存中的数据 输出到 磁盘文件
代码:
int main()
{
    int a=10;
    FILE *fp=fopen("a.txt","w");
    //printf("%d",a);
    fprintf(fp,"%d\n",a);    //fp若换位stdout则,输出到显示器文件
    return 0;
}

1.2 将磁盘文件中的内容,输入到内存中
int main()
{
    int a;
    FILE *fp=fopen("a.txt","r");
    //scanf("%d",&a);    //a是输出参数。参数的地址传递方式

    //fscanf(stdin,"%d",&a);

    fscanf(fp,"%d",&a);
    printf("a=%d\n",a);


    return 0;
}


1.3 其它问题
fopen()
需要查看返回值,如打开1个不存在的a.txt时,会返回null,而不是1个可用的FILE *类型的值


fclose(fp);
参数的区别:
    w---写,会新建,会将已有文件清空;不能读
    r---读,但不能写。必须已有a.txt文件名,否则返回错误。
    w+   只是额外增加功能
    r+   同样
   

文件fopen后,游标默认在第1个字符上(位置从0开始)。(空文件除外)-------空文件时,游标在0位置(可以利用来判断是否为空文件)

ftell------查询游标的当前位置(重要前提:使用该函数时,前面必须要移动1次游标。如前面加fseek(fp,0,SEEK_END);  如果ftell返回0,则说明文件内容为空)

fseek------让游标发生移动(有3个起点)

移动游标的方法:
fseek
fscanf(fp,"%d %s %c %s %s ",&intdat,str1,&char1,str2,str3);------前提是a.txt中,各个数据间也有空格
fprintf--------也要用相同的间隔符来 输出的a.txt
rewind(fp)------fseek(fp,0,SEEK_SET)移动文件的第1个字符上

fflush(stdin)-----当标准输入设备中有字符时,将它们清楚掉(如有'\n')

怎样保证数据已被写到了a.txt中?
fclose(fp);

fp不要重复打开

feof(fp)------读文件时,用于判断是否读到文件末尾了。如果到末尾了,返回真

posted on 2013-03-13 16:56  冰河程序猿  阅读(217)  评论(0编辑  收藏  举报

导航