c語言 檔案讀取 符 到字元陣列

2021-12-27 18:23:05 字數 4985 閱讀 7435

1樓:風若遠去何人留

可以通過fgetc函式,將字元讀取出來,並賦值到陣列的對應位置上。

fgetc宣告在stdio.h中,其原型為int fgetc(file *fp);

功能為從開啟的檔案fp中讀取一個字元,並返回。

當讀取成功時,返回讀取到的字元的ascii碼值,否則返回eof。

以下是逐個讀取字元,存於字元陣列,直到讀完整個檔案的例子。

#include

int main()

fclose(fp);//關閉檔案。

return 0;}

2樓:12345額時代

1、首先開啟dev-c++軟體,單擊檔案---->另存為,儲存原始檔。

2、在儲存檔案對話方塊中,將儲存型別選擇為c,檔名為輸出寬字元。

3、首先,定義標頭檔案的,如下圖所示。

4、接著,定義主函式名。定義一個寬字元型別的變數wstr,型別用wchar_t表示。

5、提示輸入寬字元型變數,在鍵盤輸入任意的寬字元。最後,輸出寬字元變數,用wprintf命令實現輸出。

6、執行程式,在螢幕輸入任意的寬字元,按下回車鍵就會輸出對應的寬字元。

3樓:匿名使用者

一、對檔案的讀和寫是最常用的檔案操作。在c語言中提供了多種檔案讀寫的函式:

1.字元讀寫函式  :fgetc和fputc2.

字串讀寫函式:fgets和fputs3.資料塊讀寫函式:

freed和fwrite4.格式化讀寫函式:fscanf和fprinf使用fscanf("%c",&c)即可讀取文字當中的字元。

二、例程:

#include

#define f_path "d:\\myfile\\file.dat"

char s[1000];//字元陣列

int i=0;

int main()

4樓:金色潛鳥

動態分配 p 陣列。

#include

int main()

; while(1)

rewind(fp);

p=(char *) malloc(sizeof(char)*n);

for (i=0;i

for (i=0;i

return 0;}

5樓:匿名使用者

#include

int main()

p[i]=0;//串結束符。

fclose(fp);

}return 0;}

6樓:

廢話不多說,直接上碼:

#include

#include

int main()

// 以上程式的目的是從 in.txt 中讀取每個字元寫入 out.txt 檔案中

// 要想將讀取的字元傳入陣列中那麼需要定義一個足夠大的陣列空間比如p[100]

// 然後while((c=fgetc(in)) != eof) p[i++]=c;

7樓:匿名使用者

#include

void main()

str[i]='\0';

printf("%s",str);

fclose(fp);}

c語言中從.txt檔案中按行讀取字串至陣列中,怎麼寫?

8樓:小夏在深圳

可以設定檔名為in.txt, 存有一系列整型資料,以空格或換行分隔寫。

**如下:

#include int main()

int v[100];//開一個足夠大的陣列。

int i = 0, j;

file *fp;//檔案指標    fp = fopen("in.txt", "r");//以文字方式開啟檔案。

if(fp == null) //開啟檔案出錯。

return -1;

讀取資料到陣列,直到檔案結尾(返回eof)

i++;

fclose(fp);//關閉檔案

for(j = 0; j < i; j ++)//迴圈輸出陣列元素。

printf("%d ", v[j]);

return 0;

擴充套件資料

1、字元陣列的初始化,最容易理解的方式就是逐個字元賦給陣列中各元素。

2、如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理;若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定為空字元(即 '\0' )。

9樓:匿名使用者

//若使用一維陣列使用以下程式

#include

main()

;char s2[20] = ;

char s3[20] = ;

int i=0;

file *fp;

fp = fopen("1.txt","r");

fscanf(fp,"%s",s1);

fscanf(fp,"%s",s2);

fscanf(fp,"%s",s3);

printf("%s\n%s\n%s\n",s1,s2,s3);

}//若用二維陣列使用如下程式

#include

main()

;int i=0;

file *fp;

fp = fopen("1.txt","r");

for(i=0;i<3;i++)}

c語言檔案把一個 字元陣列寫入一個檔案

10樓:匿名使用者

1、c語言標準庫提供了一系列檔案操作函式。檔案操作函式一般以f+單詞的形式來命名(f是file的簡寫),其宣告位於stdio.h標頭檔案當中。

例如:fopen、fclose函式用於檔案開啟與關閉;fscanf、fgets函式用於檔案讀取;fprintf、fputs函式用於檔案寫入;ftell、fseek函式用於檔案操作位置的獲取與設定。一般的c語言教程都有檔案操作一章,可以找本教材進一步學習。

2、例程:

#include

int i,a[100];

int main()

for(i=0;fscanf(fp1,"%d",a+i)!=eof;i++);//從輸入檔案連續讀取整數到陣列a

for(;i--;)fscanf(fp2,"%d ",a[i]);//把陣列a逆序寫入到輸出檔案當中

fclose(fp1);//關閉輸入檔案

fclose(fp2);//關閉輸出檔案,相當於儲存return 0;}

11樓:

問題在這裡

if(fpp==null)

cout<<"失敗!";

exit(1);

不管檔案開啟是否成功,exit(1)總會被執行。

把cout<<"失敗!";和exit(1);用大括號放在一塊就沒這樣的問題了

if(fpp==null)

12樓:謝謝你的愛

#include

#include

#include

#define n 100

using namespace std;

int main()

自己看下

c語言中如何讀取檔案中的漢字並將其存入陣列中?

13樓:匿名使用者

為了方便文字檔案的操作,標準函式程式設計庫提供了,行讀寫函式,

char *gets(char *s);

char *fgets(char *s, int n, file *stream);

-----------------------精通unix下c語言程式設計與專案實踐p66

行輸出函式族

int puts(const char *s);

int fputs(const char *s, file *stream);

-----------------------精通unix下c語言程式設計與專案實踐p67

塊讀寫函式

能夠輸入輸出任意數量的字元,在操作二進位制檔案時常常使用,

fread 和fwrite

塊讀寫函式經常操作二進位制檔案。

-----------------------精通unix下c語言程式設計與專案實踐p70

再有就是編碼的知識了

當你輸出的ascii碼在漢字的範圍內的時候,漢字系統會認識到

然後把相應的ascii碼變成漢字。

14樓:

建立一個足夠大的字元型陣列;

以文字方式讀開啟原檔案;

按字元方式讀取檔案,每讀一個字元判斷一下是否為漢字編碼(<0),若是則存入字元陣列,不是則跳過讀取下一個字元,直到檔案結束。

設原檔案在當前目錄下,名為123.txt,舉例**如下:

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

#include "stdlib.h"

int main(void)

while((ch=fgetc(fp))!=eof)if(ch<0)

s[i++]=ch;

fclose(fp);

s[i]='\0';

printf("%s\n",s);//打出來看看return 0;

}注:原檔案內容是「fjkslauti我rophk134是2315學jkal 習c語言jks新da;jus手jfkdsla」

輸出是「我是學習語言新手」

15樓:匿名使用者

漢字處理跟字串處理是一樣的。一個漢字就是兩個字元。

c語言讀取檔案資料亂碼,c語言讀取txt檔案資料時最後有一串亂碼怎麼辦

參考 如下 include include include int main return 0 把開啟方式改為 r 以及把讀取資訊用fscanf吧,因為如果你是原先先把kk.txt寫好,然後再用你的程式開啟它的話,由於裡面有換行符以及空格等內容,除非開始你是用fwrite函式寫入的結構資訊,否則fr...

C語言字串陣列問題

c語言中,賦值 與 賦初值 又叫初始化 是不一樣的。在定義變數的同時賦值,叫賦初值,而定義後賦值就是普通的賦值了。你說的 不能用賦值語句將一字串常量或字元陣列直接賦值給一個字元陣列 這句話是說普通賦值的情況,也就是,不能定義一個字元陣列以後,再給他直接賦值。而 char s 12345 這個語句,是...

字元陣列初始化亂碼,C語言陣列輸出出現亂碼

for i 0 i 30 i 這段 是錯誤的輸出字串的方法!正確方法為 printf s b 輸出一個字串或者,改為 for i 0 b i 0 i 字串的訪問到 0結束符就不要再輸出了!至於你分配100就沒有亂字元,只能說明是偶然現象,也就是那塊記憶體沒有寫過資料,所以看不到相應的亂字元資訊 c語...