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

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

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樓:匿名使用者

直接讀就可以了

比如說後面加個空格再加個逗號

或者迴圈也可以的

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樓:匿名使用者

使用正規表示式

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語言中對使用者輸入的讀取

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

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

為了方便文字檔案的操作,標準函式程式設計庫提供了,行讀寫函式,char gets char s char fgets char s,int n,file stream 精通unix下c語言程式設計與專案實踐p66 行輸出函式族 int puts const char s int fputs cons...

C語言中如何判斷數的位數,C語言中如何判斷一個數的位數?

h愛不絕跡 include void main void num int a printf d位的,逆序數 ld n i,b 具體如下 1 簡介c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存器 產生少量的機器碼以及不需要任何執行環境支援便能執行的...