大四中软实习笔记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)------讀文件時,用于判斷是否讀到文件末尾了。如果到末尾了,返回真
轉載于:https://www.cnblogs.com/blueswitkey/archive/2013/03/13/2957947.html
總結
以上是生活随笔為你收集整理的大四中软实习笔记201303011文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ArrayList遍历
- 下一篇: 字符串加密和解密