當前位置:首頁 » 編程語言 » c語言將字元串寫入文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言將字元串寫入文件

發布時間: 2023-05-27 10:18:56

⑴ C語言向文件寫入單個字元

調用庫函數fputc(ch,fp);就把ch表示的一個字元寫入文件了,fp是指向被打開的文件的指針。也可以用fprintf(fp,"%c",ch);操作。

⑵ 怎麼用C語言實現 輸入一個串字元存到一個文本文檔中

1.通過fopen打開文件,fputs像文件寫入數據,fclose關閉文件。
#include <stdio.h>

int main()
{
FILE *pf = fopen("F:/1.txt", "w+"); // 以寫、創建形式打開文件
if (!pf)
return -1;
fputs("123abc456-1452=!@#$", pf); // 像文件寫入字元串
fclose(pf); // 關閉文件
printf("ok");
return 0;
}

2.FILE *fopen( const char *fname, const char *mode );

fopen()函數打開由fname(文件名)指定的文件, 並返回一個關聯該文件的流.如果發生錯誤, fopen()返回NULL. mode(方式)是用於決定文件的用途(例如 用於輸入,輸出,等等)

Mode(方式) 意義

"r" 打開一個用於讀取的文本文件

"w" 創建一個用於寫入的文本文件

"a" 附加到一個文本文件

"rb" 打開一個用於讀取的二進制文件

"wb" 創建一個用於寫入的二進制文件

"ab" 附加到一個二進制文件

"r+" 打開一個用於讀/寫的文本文件

"w+" 創建一個用於讀/寫的文本文件

"a+" 打開一個用於讀/寫的文本文件

"rb+" 打開一個用於讀/寫的二進制文件

"wb+" 創建一個用於讀/寫的二進制文件

"ab+" 打開一個用於讀/寫的二進制文件

3.int fputs( const char *str, FILE *stream );fputs()函數把str(字元串)指向的字元寫到給出的輸出流. 成功時返回非負值, 失敗時返回EOF.

4.int fclose( FILE *stream );
函數fclose()關閉給出的文件流, 釋放已關聯到流的所有緩沖區. fclose()執行成功時返回0,否則返回EOF.

⑶ C語言對文件操作,用fputs函數不能把字元串寫入文件

讀寫一個字元數據

經過前面的學習,我們學習了fread()、fwrite()函數的操作,這兩個函數都是對一段「內存塊」進行讀寫操作。那麼,C語言還提供了fgetc()、fputc()函數,對文件中的一個字元進行讀寫操作。這些函數的定義如下:

int fgetc(FILE *stream);

函數說明:從stream文件指針所指向的文件讀取1個字元,通過函數的返回值返回。例如:

char c = fgetc(fp);

就是從fp指向的文件,讀取1個字元的數據,通過函數返回值,設置給字元變數c。

int fputc(int c, FILE *stream);

函數說明:把參數c表示的字元,寫入stream文件指針所指向的文件。例如:

char c = 'M';

fputc(c, fp);

就是把參數c表示的字元變數,寫入文件指針fp指向的文件。如下是一個程序測試例子:

可以看到,新建一個test.txt文件,調用fputc()函數,把一個字元寫入到文件中。然後,再重新打開文件,讀取文件的數據,調用fgetc()函數讀取一個字元,得到的數據是剛剛寫入的字元。所以,通過這個例子,我們學習了fgetc()、fputc()函數的操作,對文件進行一個字元的讀寫操作。

3.5 讀寫一行字元數據

C語言提供了fgets()、fputs()函數對文件進行讀寫「一行」的數據,字元串以'\n'字元換行,注意,所謂的「一行」數據,它的最後一個有效字元是』\n』,表示換行符號。字元串的結束符,還是以』\0』為結尾,表示字元串結束符。其中fgets()函數的定義如下:

char *fgets(char *buf, int size, FILE *stream);

函數說明:從stream函數指針所指向的文件中,讀取size-1個位元組到buf緩存,不是讀取size個位元組,因為,buf[ ]緩存的第size個位元組存放字元串結束符,形成一個有效的字元串。

當讀取到換行符時,或者到達文件末尾時,結束文件的讀取操作。

返回值:讀取數據成功,返回存儲數據的緩存地址,就是參數buf的地址。如果讀取數據失敗,返回NULL。例如,讀取文件完,沒有數據可以再讀取,則返回NULL。

int fputs(const char *buf, FILE *stream);

函數說明:把參數buf指針指向的字元串,寫入到stream指向的文件。參數buf是一個字元串指針,必須指向一個合法的字元串。合法的字元串是以字元串結束符'\0'結束,表示一個字元串的結尾。

返回值:寫入數據成功,返回成功寫入的字元個數。失敗返回EOF標記。

如下是一個程序測試例子:

程序運行結果如下:

可以看到,程序調用fputs()函數,往打開的test.txt文件寫入數據。直接寫入一個字元串。然後,關閉文件,再重新打開文件。調用fgets()函數讀取數據,讀取數據的時候,遇到回車換行的字元'\n',表示一行數據,那麼,就返回讀取到的一行數據。

在實際的項目開發過程中,fgets()函數非常有用。例如,我們定義一個config.txt文件,裡面存放一些系統的配置信息,文件的格式如下:

cat /etc/config.txt

sys_pwd=123456

ApCliAuthMode=WPA2PSK

ApCliEncrypType=AES

ApCliChannel=1

ApCliDefaultKeyID=1

那麼,文件的配置信息是一行一行數據,所以,可以用fgets()函數,快速讀取出每一行系統配置信息。

⑷ C語言怎麼將輸入函數體的文字寫到文本文件裡面

以下是桐螞一個簡單的C語言程序,可以實現將鍵盤輸入的字元串寫入文件中,並統計其中字母、數字、空格和其他字元出現的次數,並將字母和數字存放到另一個文件中:

```c
#include <stdio.h>
#include <ctype.h>

int main() {
char str[1000], ch;
int i = 0, letter_count = 0, digit_count = 0, space_count = 0, other_count = 0;

// 從用戶輸入中讀取字元串
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);

// 將字元串寫入文件並統計字元出現次數
FILE *fp = fopen("input.txt", "w");
if (fp == NULL) {
perror("fopen");
return 1;
}

while ((ch = str[i++]) != '\0') {
fputc(ch, fp);

if (isalpha(ch)) {
letter_count++;
} else if (isdigit(ch)) {
digit_count++;
} else if (isspace(ch)) {
space_count++;
} else {
other_count++;
}
}

fclose(fp);

// 統計字母和數字出現次數並將其存入文件
fp = fopen("output.txt", "w");
if (fp == NULL) {
perror("fopen");
return 1;
}

fprintf(fp, "Letters: %d\n", letter_count);
fprintf(fp, "Digits: %d\n", digit_count);

fclose(fp);

// 輸出字元出現次數的統計結果
printf("Letter count: %d\n", letter_count);
printf("Digit count: %d\n", digit_count);
printf("Space count: %d\n", space_count);
printf("Other count: %d\n", other_count);

return 0;
}
```

在上述代碼中,我們使用 `fgets()` 函數從用戶輸入中讀取字元串,並將其寫入名為 `input.txt` 的文本文件中。在此過程中,我們使用了 `isalpha()` 和 `isdigit()` 等函數判斷字元類型,並統計其中字母、數字、空格和其他字元的出現次數。

然後,我們使用 `fprintf()` 函數將字母和數字的出現次數分別存入名為 `output.txt` 的文件中。

最後,輸出字元出現芹嫌次數的統計結果。

需要局首埋注意的是,在實際應用中還需要考慮更多的邊界情況和錯誤處理。例如,可能出現無法打開或關閉文件、讀寫文件出錯等問題。此外,如果輸入的字元串超出預設數組大小,可能會引起緩沖區溢出等問題。

⑸ C語言怎麼把字元串用fprintf寫入文本文件

把把字元串寫入文件,基本示例如下:

FILE *fp;

char s[]= "hello world!";

char c = ' ';

fp = fopen("file.txt","a");

fprintf(fp,"%s",s); //字元串使用%s

fprintf(fp,"%c",c); //字元使用%cfclose(fp);從文件讀取到字元串 char s1[30];fp=fopen("file.txt","r");fscanf(fp, "%[^ ] ", s1);printf("%s ",s1);fclose(fp); 本來挺簡單的一件事,可是讓我頭疼了好幾個小時。

在前面寫了 fp = fopen("file.txt","a");

fprintf(fp,"%s",s); //字元串使用%s

但是fclose(fp);這句被我寫在了return 0;之前,然後字元串死活寫不進文件裡面去。後來終於發現是因為使用了while(1)循環讀取埠數據,所以一直沒有執行fclose(fp);這句,才導致文件裡面一直是空的。所以fclose(fp);這句話不要忘記了哦~~ :)