上篇文章我們講解了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;
}