C言語 配列
ご質問させていただきます。
CSVファイルからデータを呼び出し、二次元配列として出力したいのですが上手くいきません。
CSVファイルには英数字が混ざっており、エクセルでいう、11行と1440列ほどのデータがあります。初心者なりに書いてみたのですが、どこから手を付けたらいいかわかりません。
三次元配列にしないといけないとのアドバイスをいただいたのですがどのようにすればいいかわかりませんヒントを頂けるとたすかります。
元のcsvファイルは例ですがこのような下記のような構造になっていて2行目にいったときに[0][0]から[1][0]と変わっていってほしいです。
testt,esttest,testte,stte,sttest
testte,sttes,ttest,~
理想
[0][0] = [testtesttest]
[0][1] = [testtesttesttest]
一行が終わりしだい
[1][0] = [testtesttesttest]
と変わっていくようにしたいです。
エラーが出ますが、コードを記載させていただきます。
コード
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
//ストリームポインタ
FILE *fp;
int kk = 0;
int nn = 0;
int hoge;
//ファイルから読み込んだテキスト1行分を格納するためのchar配列を指定します
int piyo[11][1440];
//*filename : 開くファイル名を指定
char *fname = "./test1/test2/201509/test.csv";
//ファイルが無かったり,指定フォルダでなければ、FILE変数fpはNULLが返ります。
fp = fopen(fname, "r");
//NULLが返ってきた場合の処理
if (fp == NULL) {
printf("%sファイルが開けません¥n", fname);
return -1;
}
//ファイルから1行ずつ読み込む成功すると、読み込んだ文字列のポインタを返し、失敗すると、NULLを返します。
while (1 == fscanf(fp, "%c,", &hoge)) {
piyo[kk][nn] = hoge;
printf("[%d][%d]=%d\n", kk, nn, piyo[kk][nn]);
nn++;
if (1440 == nn) {
kk++;
nn = 0;
}
}
//FILE *fp : fopen()で取得したファイルポインタ
fclose(fp);
return 0;
}
補足
c言語授業の課題です。 初心者なりにstaticを使ってソートしたのですが、配列格納方法で static使ってはいけないと教官にいわれましたorz どうすればいいかずっと考えたんですがわかりません。 ご教授よろしくお願いします。