二、寫(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)容。
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)容。