環境OS:windows7
1. 自分は今何がしたくて
C言語でCSV(文字列)を読み込んで二次元配列に格納し表示させたい。
2. どう取り組んで(作ったプログラムはどれで
下記に記述させていただきます。
3. どのようなエラーやトラブルで困っていて
単純な表示はできましたが、それを二次元配列に格納することができない。
4. 自分は何が解らないのか、知りたいのか
どのようにすれば二次元配列にトークンを格納できるのか。
5. 今のCの知識はどの程度なのか
初めて1か月ほどになります。
CSVの詳細
日本の首都は,東京,京都,静岡,沖縄,1
1+1は,2,3,4,5,1
1+2は,3,4,4,5,1
1+3は,4,5,4,5,1
初めまして。初めて質問させていただきます。
現在勉強のため、簡単なクイズアプリを作成しようと作業しております。
現在CSVを読み込んでカンマ区切りで表示させる方法はできたのですが、
それを二次元配列に入れる方法がよくわかりません。何の知識がないため
こういった事象になっているのか判断つけるためにもぜひともご教授いただけますでしょうか。
「おそらく問題であろうと自分なりに考えた箇所」
二次元配列の初期化ができていないため処理ができていないのではないか。
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE *fp;
char *csv = "quiz.csv";//ファイルの読み込み
char buf[1024];
char *kakunou;
char array[80][128];
int i; //行インデックス
int j; //列インデックス
//////////////////ファイル読み込み/////////////////
fp = fopen( csv, "r" ); //ファイル読み込み
if( fp == NULL ){
printf( "%sファイルが開けません\n", csv);
return -1;
}
//////////////////ファイル読み込み/////////////////
//////////////////csv解析処理開始/////////////////
i = j = 0;
while(fgets(buf, sizeof(buf), fp)){
kakunou = buf;
//printf("%s",kakunou); //1行ずつの取得問題なし
while( (kakunou = strtok(kakunou,",\0")) != NULL){
//array[i][j++] = ;ここをどういった処理にすればいいのかがわからないです。
//printf("%s\n",kakunou);トークンごとの表示問題なし
kakunou = NULL;
}
i++;
j = 0;
}
//////////////////csv解析処理開始/////////////////
fclose( fp ); //ファイルのクローズ
return 0;
}