改行されたtxtファイルの読み込み(C++)
3374356,4785323,7043817,5111179,8267572,
6486903,3258714,6344689,8620512,7434933,
8088837,8231528,6524254,5928445,7101798,
5338215,5233711,4753647,5930266,7512232,
5343749,5813061,6439450,6257874,5724787,
5864114,9006652,4871427,6158077,7343041,
7615426,7168142,5866379,8154664,7342803,
という形式のデータ数1000のtxtファイルがあります。
解析に使用したいのでCに読み込みたいのですが、方法が調べても分からず困っています。とりあえず以下が、データが一行の際に使用しているソースコードです。
FILE *fp;
char linebuf[4096];
char *p;
int array[1024];
int data=0;
fp=fopen("randombetarev.txt","r");
if(!fp)
return 1;
fgets(linebuf,4096,fp);
fclose(fp);
p=strtok(linebuf,",");
do{
array[data]=atoi(p);
data++;
}while(p=strtok(NULL,","));//ここまででデータを配列に格納
これでは改行の判別ができないので初めの一行目のデータしか読み込めません。どなたかご教授ください。
お礼
Oh-Orange様 いつもご回答ありがとうございます。プログラムを完成させることができました。 >・あと1行ずつ読み込むと配列に連続した値として格納できないのでは?ってどういう事? >複数の『pbm』画像データを連続して読み込んだとき、その複数の画像データの部分が 連続しているように格納したいということですか? > この辺の部分をもう少し補足してくれますか? このことについては解決したので大丈夫です。 >・上の構造体はメンバ img が可変長のデータを格納するようにするため [1] というサイズに なっています。この構造体をメモリ(malloc)で確保するとき、画像の横×画像の縦+構造体の サイズを足した容量を確保します。こうすれば、構造体 pbm_t で画像の縦と横が変動しても char 型の img 配列でデータを連続して管理できます。 この方法は思いつきませんでした。次回に活かします。ありがとうございました!