C語言入門學(xué)習(xí)之fgets()函數(shù)和fputs()函數(shù)
fgets()函數(shù)
fgets()函數(shù)和gets()函數(shù)一樣,都是讀取字符串,不過gets()函數(shù)通常用來從鍵盤讀取輸入的字符串,fgets()函數(shù)可以通過文件來讀取字符串。下面通一個例子來演示fgets()函數(shù)的使用方法。
int main() { FILE *in,*out; int ret; char ch; char str1[30],str2[30],str3[30]; /* 打開文件 */ in = fopen("123.txt","r"); if(in == NULL) puts("打開失??!"); else puts("打開成功!"); fgets(str1,10,in); puts(str1); /* 關(guān)閉文件 */ ret = fclose(in); if(ret == 0) puts("關(guān)閉成功!"); else puts("關(guān)閉失??!"); system("pause"); return 0; }
通過fopen()函數(shù)打開123.txt文件,然后使用fgets()函數(shù)從文件中讀取字符串,然后將讀取到了字符串打印出來。這里fgets()函數(shù)里面有三個參數(shù),第一個參數(shù)用來存儲讀取的字符串內(nèi)容,第二個參數(shù)是需要讀取的字節(jié)數(shù),第三個參數(shù)是待讀取的文件指針。
從123.txt文件中讀取10個字符打印出來,由于第10個字符是空格,所以打印出來的字符串只能看到9個字符。如果將fgets()函數(shù)的第二個參數(shù)改大,就可以讀取更多的字符內(nèi)容了。
將讀取的字符數(shù)量修改為30,就會打印出123.txt文件中全部內(nèi)容。如果修改fgets()第三個參數(shù)為stdin,那么fgets()函數(shù)就可以通過鍵盤讀取字符串。
將第三個參數(shù)修改為stdin,從標(biāo)準(zhǔn)輸入設(shè)備中讀取數(shù)據(jù),也就是從鍵盤讀取。運行程序后,通過鍵盤輸入一組字符串,按下回車鍵之后,就會打印出剛才輸入的字符串。
fputs()函數(shù)
fputs()函數(shù),可以用來向文件中寫入一個字符串。示例如下:
int main() { FILE *in,*out; int ret; char ch; char str[]="abc 123 def 456"; char str1[30],str2[30],str3[30]; /* 打開文件 */ in = fopen("123.txt","w"); if(in == NULL) puts("打開失??!"); else puts("打開成功!"); fputs(str,in); /* 關(guān)閉文件 */ ret = fclose(in); if(ret == 0) puts("關(guān)閉成功!"); else puts("關(guān)閉失敗!"); system("pause"); return 0; }
以寫模式打開123.txt文件,然后使用fputs()函數(shù)向文件內(nèi)寫入一個字符串。fputs()函數(shù)有兩個參數(shù),第一個參數(shù)是待寫入的字符串,第二個參數(shù)是待寫入的文件指針。
運行程序后打開123.txt文件,可以看到文件中以前的內(nèi)容已經(jīng)被新的字符串覆蓋了。這是因為打開文件的時候,是以只寫的方式打開的,它會將文件中以前的內(nèi)容清空,如果向文件中寫入內(nèi)容的時候,不希望清空以前的內(nèi)容,那么打開文件的時候就需要以追加的形式打開。比如修改打開文件代碼:
in = fopen("123.txt","a+");
程序執(zhí)行完之后,打開123.txt文件,可以看到剛才寫入的字符串還在,新添加的字符串緊跟在原來的字符串后面。如果想要新添加的內(nèi)容再下一行,在添加內(nèi)容的時候在字符串中可以加上回車換行的轉(zhuǎn)義字符。
總結(jié)
到此這篇關(guān)于C語言入門學(xué)習(xí)之fgets()函數(shù)和fputs()函數(shù)的文章就介紹到這了,更多相關(guān)C語言 fgets()函數(shù)和fputs()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實現(xiàn)學(xué)生考勤信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)學(xué)生考勤信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-12-12Qt+QListWidget實現(xiàn)氣泡聊天界面(附源碼)
由于最近的項目需要,做了些相關(guān)IM的工作。所以聊天框也是必不可少的一部分。本文以QListWidget+QPainter繪制的Item做了一個Demo。該Demo只是做一個示例,感興趣的可以了解一下2022-12-12