c語言中如何讀取以逗號分割的檔案中的資料

時間 2021-09-11 22:33:35

1樓:

在c語言中,可以使用格式化輸入函式fscnaf來解決上述問題,例如有文字檔案的資料儲存方式為:

12,13

34,56

......

則在fscnaf中可以按如下方法輸入:

fscanf(fp,"%d,%d\n",&a,&b);

2樓:風若遠去何人留

對於這個問題,有兩種解決方案。

一,直接用scanf進行格式化輸入。

滿足以下兩種條件可以用scanf進行輸入:

1 要輸入的資料中不能有空白符號,因為用scanf輸入時空白符號會被忽略。

空白符號包括空格(' '),製表符('\t'),換行符('\n')等。

2 檔案中被分隔開的資料型別是以一定的固定規律出現的。

舉幾個典型的例子供理解。

例一:所有都是都在一行,均為int型且都用逗號分隔

或者即使有換行,那麼換行前最後一個資料後面仍有逗號分隔。

也就是說,任意兩個有效資料之間有且只有一個逗號分隔。

那麼可以迴圈呼叫

scanf("%d,",&v);

來依次把資料讀到v中並處理。

例二:檔案有多行,每行依次為int, double,char的格式,且每行結尾的資料後面沒有逗號。

可以定義

int a;

double b;

char c;

然後迴圈呼叫

scanf("%d,%lf,%c", &a,&b,&c);

再處理a,b,c的值。

二,迴圈讀入單個字元,再處理字串。

此種方法適用於輸入的資料中有空白字元的情況,較為複雜。關鍵**入下:

#include

void read_file(file *fp)//fp 為開啟的可讀檔案的指標

//else if();//這裡不做任何事。如果有什麼需要忽略的字元,可以加在這一行,比如忽略換行,可以加else if(ret == '\n');

else buf[i]++=ret;

if(ret == eof)break;//到檔案結尾退出。}}

3樓:匿名使用者

直接讀就可以了

比如說scanf("%f ,%f ,%f", &f1, &f2, &f3); // %f後面加個空格再加個逗號

或者迴圈也可以的

while(scanf("%f ,", &farray[***]))

4樓:匿名使用者

#include

#include

#include

int main()

char vec[255][255] = ;

int i = 0, j = 0;

while (!feof(file))

}fclose(file);

for(int k = 0; k <= i; k++)printf("%s\n", vec[k]);

return 0;}

5樓:**夢幻

每次用fgets讀取整行,然後掃描一遍,看看逗號數量是不是足夠一個完整結構體了。

如果不夠,繼續fgets,注意要讀取到上一次fgets內容的末尾。然後再度檢查逗號數量。

如果逗號數量夠了(也就是內容已經足夠一個結構體了),先去掉換行符。

然後每次先用strchr找到下一個逗號,再用strncpy將當前位置到下一個逗號的內容拷貝到結構體相應成員變數中。

讀完當前結構體後,用memmove將未處理的內容前移到緩衝區開頭。

6樓:滄海雄風

很簡單最少10分鐘解決 剛才解決了個類似的問題

c語言怎麼讀取檔案中以逗號為分隔符的一組數,並將其存入陣列(txt檔案中的數為1,2,3,4,5)

7樓:匿名使用者

使用正規表示式

fscanf(fp,"%*[^0-9]%d",&a[i]);

c語言從txt檔案中讀取多行用逗號分隔資料,儲存在陣列a[i] 5

8樓:匿名使用者

用fgets()結合sscanf("%s,"&a[i] );來讀取資料

或直接用fscanf("%s,"&a[i] );函式來讀取資料即可!

9樓:junior幽靈

別聽最快回答 他的程式不會處理輸入的個數

這道題說白了就是處理逗號

#include

using namespace std;

int a[2013];

int x;

int i=1;

int main()

return 0;}

c語言,如何讀取逗號分隔的字串,將逗號間的字串分別提取出

小李柏 省略標頭檔案,int mian等。這裡用到std getline using namespace std getline myfile,line,getline讀myfile進string line,第三個變數很有用,定義是讀取字元直到第三格變數被找到 這裡是逗號 如果不定義預設是換行符 n...

C語言中對使用者輸入的讀取

因為你輸入完第一個字元後按了回車鍵,而回車鍵實際上輸入了2個字元,第一個字元被scanf用來確認輸入結束,第2個位元組仍保留在緩衝區內,被第2個scanf讀到了,因此b的值實際上是回車輸入的第2個字元,是個控制字元,不可見.以後注意了,在scanf c getchar之類輸入字元的語句前,要加ffl...

c語言如何將變數寫入檔案,C語言中如何從檔案讀取資料並賦值到變數?

多爾安巨集教 原因 使用fopen時引數不正確,你是用 w引數,若檔案存在則檔案長度清為0,即該檔案內容會消失。每次都是重新清空並寫資料,將w修改為a即可.fopen函式說明見下方 file fopen const char path,const char mode 編輯本段 函式說明 引數path...