- ベストアンサー
C言語でCSVファイルを配列に入れる方法とは?
- C言語でCSVファイルを読み込んで配列に入れる方法について教えてください。
- 旧字体と新字体の対応表を含むCSVファイルを配列に入れて操作したいです。
- 具体的には、旧字体と新字体を1列に並べて表示する方法が知りたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
前の関連質問 http://oshiete1.goo.ne.jp/qa5512520.html http://oshiete1.goo.ne.jp/qa5506659.html >csvファイルを配列に入れるところからこんがらがっています。 どんな配列に、どういう形で入れたいの?
その他の回答 (3)
- titokani
- ベストアンサー率19% (341/1726)
あと、UTF-8なんですよね。 もし、変換対象のファイルもUTF-8であるなら、文字コードに変換はしないで、そのまま1バイト~4バイトの文字列として処理したほうが簡単だと思います。
- titokani
- ベストアンサー率19% (341/1726)
> while( 1 == fscanf( fi, "%d,", &iVal ) ){ // "%d," の , に注目 配列に入れる以前に、ファイルから読み込めてないようですが。 iValの値は表示させてみましたか?
- asuncion
- ベストアンサー率33% (2127/6289)
>csvファイルを配列に入れるところからこんがらがっています。 どんな風にこんがらがっているか、(作成途中の)ソースコードを さらけ出してみるとよいでしょう。
補足
ソースは色々参考にしてこんな感じで書きました #include <stdio.h> #include <stdlib.h> int main(void) { FILE *fi; int kk = 0, nn = 0, iVal, iData[60][3]; if((fi = fopen( "csv.csv", "r" ))==NULL){ printf( "ファイルオープンエラー\n" ); exit( 1 ); } while( 1 == fscanf( fi, "%d,", &iVal ) ){ // "%d," の , に注目 iData[ kk ][ nn ] = iVal; nn++; if( 60 == nn ){ // 1行読み込み済み kk++; nn = 0; } } fclose( fi ); if( ( 60 != kk ) || ( 0 != nn ) ){ printf( "ファイルエラー[%d][%d]\n", kk, nn ); exit( 2 ); } }
補足
まずint hairetu1[59][3]という形をとりたいと思っています。 そのあと操作して、この配列を旧字体だけの1列の配列に入れて、 int hairetu2[59] という形にしたい。 また、その旧字体に対応した並びの新字体の配列を1列用意したいんです。 int hairetu3[59] こんな感じで作りたいんです。