上篇文章我們講解了C語言中fgetc()、fgets()之間的區別
接下來我在來講解下fputc() 和 fputs() 之間的區別
1.fputc 是 file output char 的所以,意思是向指定的文件中寫入一個字符。
fputc() 的用法爲:
int fputc ( int ch, FILE *fp );
ch 爲要寫入的字符,fp 爲文件指針。fputc() 寫入成功時返回寫入的字符,失敗時返回 EOF,返回值類型爲 int 也是爲了容納這個負數。例如: fputc('a', fp); 或者:char ch = 'a'; fputc(ch, fp);
表示把字符 'a' 寫入fp所指向的文件中。
兩點說明
1) 被寫入的文件可以用寫、讀寫、追加方式打開,用寫或讀寫方式打開一個已存在的文件時將清除原有的文件內容,並將寫入的字符放在文件開頭。如需保留原有文件內容,並把寫入的字符放在文件末尾,就必須以追加方式打開文件。不管以何種方式打開,被寫入的文件若不存在時則創建該文件。
2) 每寫入一個字符,文件內部位置指針向後移動一個字節。
#include<stdio.h>
int main(){
FILE *fp;
char ch;
//判斷文件是否成功打開
if( (fp=fopen("D:\\demo.txt","wt+")) == NULL ){
puts("Fail to open file!");
exit(0);
}
printf("Input a string:\n");
//每次從鍵盤讀取一個字符並寫入文件
while ( (ch=getchar()) != '\n' ){
fputc(ch,fp);
}
fclose(fp);
return 0;
}
2.fputs() 函數用來向指定的文件寫入一個字符串,它的用法爲:
int fputs( char *str, FILE *fp );
str 爲要寫入的字符串,fp 爲文件指針。寫入成功返回非負數,失敗返回 EOF。例如:
char *str = "http://c.biancheng.net";
FILE *fp = fopen("D:\\demo.txt", "at+");
fputs(str, fp);
表示把把字符串 str 寫入到 D:\\demo.txt 文件中。
【示例】向上例中建立的 d:\\demo.txt 文件中追加一個字符串。
#include<stdio.h>
int main(){
FILE *fp;
char str[102] = {0}, strTemp[100];
if( (fp=fopen("D:\\demo.txt", "at+")) == NULL ){
puts("Fail to open file!");
exit(0);
}
printf("Input a string:");
gets(strTemp);
strcat(str, "\n");
strcat(str, strTemp);
fputs(str, fp);
fclose(fp);
return 0;
}
運行程序,輸入C C++ Java Linux Shell
,打開 D:\\demo.txt,文件內容爲: