大四中软实习笔记201303011文件
1 文件的概念
printf??? 打印=輸出??????????????? 內(nèi)存------------>顯示器=stdout-------文件(文件指針)
scanf??? 錄入=輸入??????????????? 內(nèi)存<------------?? 鍵盤=stdin-------文件(文件指針)
fflush
1.1 將內(nèi)存中的數(shù)據(jù) 輸出到 磁盤文件
代碼:
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 將磁盤文件中的內(nèi)容,輸入到內(nèi)存中
int main()
{
??? int a;
??? FILE *fp=fopen("a.txt","r");
??? //scanf("%d",&a);??? //a是輸出參數(shù)。參數(shù)的地址傳遞方式
??? //fscanf(stdin,"%d",&a);
??? fscanf(fp,"%d",&a);
??? printf("a=%d\n",a);
??? return 0;
}
1.3 其它問(wèn)題
fopen()
需要查看返回值,如打開(kāi)1個(gè)不存在的a.txt時(shí),會(huì)返回null,而不是1個(gè)可用的FILE *類型的值
fclose(fp);
參數(shù)的區(qū)別:
??? w---寫,會(huì)新建,會(huì)將已有文件清空;不能讀
??? r---讀,但不能寫。必須已有a.txt文件名,否則返回錯(cuò)誤。
??? w+?? 只是額外增加功能
??? r+?? 同樣
???
文件fopen后,游標(biāo)默認(rèn)在第1個(gè)字符上(位置從0開(kāi)始)。(空文件除外)-------空文件時(shí),游標(biāo)在0位置(可以利用來(lái)判斷是否為空文件)
ftell------查詢游標(biāo)的當(dāng)前位置(重要前提:使用該函數(shù)時(shí),前面必須要移動(dòng)1次游標(biāo)。如前面加fseek(fp,0,SEEK_END);? 如果ftell返回0,則說(shuō)明文件內(nèi)容為空)
fseek------讓游標(biāo)發(fā)生移動(dòng)(有3個(gè)起點(diǎn))
移動(dòng)游標(biāo)的方法:
fseek
fscanf(fp,"%d %s %c %s %s ",&intdat,str1,&char1,str2,str3);------前提是a.txt中,各個(gè)數(shù)據(jù)間也有空格
fprintf--------也要用相同的間隔符來(lái) 輸出的a.txt
rewind(fp)------fseek(fp,0,SEEK_SET)移動(dòng)文件的第1個(gè)字符上
fflush(stdin)-----當(dāng)標(biāo)準(zhǔn)輸入設(shè)備中有字符時(shí),將它們清楚掉(如有'\n')
怎樣保證數(shù)據(jù)已被寫到了a.txt中?
fclose(fp);
fp不要重復(fù)打開(kāi)
feof(fp)------讀文件時(shí),用于判斷是否讀到文件末尾了。如果到末尾了,返回真
轉(zhuǎn)載于:https://www.cnblogs.com/blueswitkey/archive/2013/03/13/2957947.html
總結(jié)
以上是生活随笔為你收集整理的大四中软实习笔记201303011文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ArrayList遍历
- 下一篇: (转)响应式Web设计是大势所趋还是时代