天天看點

C語言fputc() 和 fputs() 之間的差別

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