二級(jí)C語(yǔ)言考試輔導(dǎo)教程第十章:文件[3]

字號(hào):

二、寫(xiě)字符函數(shù)fputC
     fputC函數(shù)的功能是把一個(gè)字符寫(xiě)入指定的文件中,函數(shù)調(diào)用的 形式為: fputC(字符量,文件指針); 其中,待寫(xiě)入的字符量可以是字符常量或變量,例如:fputC(’a’,fp);其意義是把字符a寫(xiě)入fp所指向的文件中。
     對(duì)于fputC函數(shù)的使用也要說(shuō)明幾點(diǎn):
     1. 被寫(xiě)入的文件可以用、寫(xiě)、讀寫(xiě),追加方式打開(kāi),用寫(xiě)或讀寫(xiě)方式打開(kāi)一個(gè)已存在的文件時(shí)將清除原有的文件內(nèi)容,寫(xiě)入字符從文件首開(kāi)始。如需保留原有文件內(nèi)容,希望寫(xiě)入的字符以文件末開(kāi)始存放,必須以追加方式打開(kāi)文件。被寫(xiě)入的文件若不存在,則創(chuàng)建該文件。 來(lái)源:www.examda.com
     2. 每寫(xiě)入一個(gè)字符,文件內(nèi)部位置指針向后移動(dòng)一個(gè)字節(jié)。
     3. fputC函數(shù)有一個(gè)返回值,如寫(xiě)入成功則返回寫(xiě)入的字符, 否則返回一個(gè)EOF??捎么藖?lái)判斷寫(xiě)入是否成功。
     [例10.2]從鍵盤(pán)輸入一行字符,寫(xiě)入一個(gè)文件, 再把該文件內(nèi)容讀出顯示在屏幕上。
     #inClude
     main()
     {
     FILE *fp;
     Char Ch;
     if((fp=fopen("string","wt+"))==NULL)
     {
     printf("Cannot open file strike any key exit!");
     getCh();
     exit(1);
     }
     printf("input a string:\n");
     Ch=getChar();
     while (Ch!=’\n’)
     {
     fputC(Ch,fp);
     Ch=getChar();
     }
     rewind(fp);
     Ch=fgetC(fp);
     while(Ch!=EOF)
     {
     putChar(Ch);
     Ch=fgetC(fp);
     }
     printf("\n");
     fClose(fp);
     }
     程序中第6行以讀寫(xiě)文本文件方式打開(kāi)文件string。程序第13行從鍵盤(pán)讀入一個(gè)字符后進(jìn)入循環(huán),當(dāng)讀入字符不為回車(chē)符時(shí), 則把該字符寫(xiě)入文件之中,然后繼續(xù)從鍵盤(pán)讀入下一字符。 每輸入一個(gè)字符,文件內(nèi)部位置指針向后移動(dòng)一個(gè)字節(jié)。寫(xiě)入完畢, 該指針已指向文件末。如要把文件從頭讀出,須把指針移向文件頭, 程序第19行rewind函數(shù)用于把fp所指文件的內(nèi)部位置指針移到文件頭。 第20至25行用于讀出文件中的一行內(nèi)容。