CSVファイル読み込みの方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yskey

CSVファイル読み込みの方法

#1

投稿記事 by yskey » 16年前

yskeyですどうもお世話になっています。m(_ _)m
先日、文章読み込みのことで質問させてもらいましたが、今度はcsvファイル読み込みのところで詰まってしまいました。
まだまだ、勉強不足です(;´Д`)
なるべく自己解決が望ましいので、CやC++の良い参考書があれば是非紹介してもらえないでしょうか。
(と言ってもあまり高いのは買えませんが)
開発環境はVC++でDxLib、OSはWinXpです。

今、龍神録第11章にあるエクセル読み込みを参考にしてcsvの文章を読み込もうとしています。
ソースコードは

char String[/url][512];

void load_story(int gyou){ //gyouに入れた数字のところの行を読み込む
int n,num,i,fp;
char fname[32]={"dat/sent/sent.csv"};
int input[512];
char inputc[512];

fp = FileRead_open(fname);//ファイル読み込み
if(fp == NULL){
MB("read error\n");
return;
}
for(i=0;i<gyou-1;i++)//gyou=読み込む行番号
while(FileRead_getc(fp)!='\n');

n=0 , num=0;
while(1){
for(i=0;i<512;i++){
inputc=input=FileRead_getc(fp);//1文字取得する
if(inputc=='/'){//スラッシュがあれば
while(FileRead_getc(fp)!='\n');//改行までループ
i=-1;//カウンタを最初に戻して
continue;
}
if(input=='\n' || input==EOF){//カンマか改行なら
inputc='\0';//そこまでを文字列とし
goto EXFILE;
}
}
}
strcpy(String,inputc);
EXFILE:
FileRead_close(fp);
}

これで実行すると

error C2664: 'strcpy' : 1 番目の引数を 'char [/url][512]' から 'char *' に変換できません。(新しい 機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

となります。なにがだめなのか今の知識ではさっぱりです・・・


グローバル関数Stringには、たとえば

String[/url][512]={
  "文章",
  "文章",
  "文章",
};

のような形で文章をコピーしたいので(字下げとか改行とかの意味でなく)
CSVの中身は

"文章","文章","文章"

のような形でできています。
これらの上記のプログラムでコピー出来るのでしょうか?
また、inputc[512]を512個の配列として宣言しているとString[/url][512]の二次元配列には入らないような気がするんでうが。
もしかしてそれが原因なのでしょうか・・・

String[/url][512]に何とかcsvをコピーする方法はないでしょうか?

ねこ

Re:CSVファイル読み込みの方法

#2

投稿記事 by ねこ » 16年前

ん~とりあえず詳細処理は置いといて・・・
strcpyの第一引数はchar*が正確ですのでString[0]とかになりますね。
それでひとまずエラーは消えるはずです。

yskey

Re:CSVファイル読み込みの方法

#3

投稿記事 by yskey » 16年前

char* とはどんな意味でしょうか?

yskey

Re:CSVファイル読み込みの方法

#4

投稿記事 by yskey » 16年前

と言うか、字下げされてませんね(;´Д`)
すいません。

ねこ

Re:CSVファイル読み込みの方法

#5

投稿記事 by ねこ » 16年前

文字列ポインタです。分からなかったら検索なりで色々出てくるはずです。

yskey

Re:CSVファイル読み込みの方法

#6

投稿記事 by yskey » 16年前

すいません、しばらくがんばってみます。
ご回答ありがとうございますm(_ _)m

閉鎖

“C言語何でも質問掲示板” へ戻る