|
■No27557 (アキラ さん) に返信
> ■No27556 (セルピコ さん) に返信
>>
>>csvファイルを開いてそれを表示させるだけならできたのですが、おっしゃる通り、(1)の段階でつまずいております。
>>csvファイルからどのようにして、配列に入れることができるのですか?
>
> 「C++ CSV」などで検索すれば、CSVを扱うライブラリはいくらでも見つかります。
> セルピコさんの環境に合った方法を探してみてください。
>
> boost::tokenizerを使用した例
これとvectorを組み合わせるのが素直かなとも思ったのですが、どうも「f1=15,f2=31,f3=46・・」とあることから、
まず配列で躓かれているようなので、厳しいかなと。
実験データの処理のためとか、*自分で使うため*のプログラムであれば、軽く済ませる手もありますね。
例えばこんな感じ。(Cプログラムで書いてます)
#include <stdio.h>
#define DATASIZE 1000
int freqArray[DATASIZE]; /* 周波数用配列変数 */
double dbArray[DATASIZE]; /* 強度用配列変数 */
int main(void)
{
char buf[256];
int index = 0;
while (gets(buf)) {
int fval;
double dbval;
if (sscanf(buf, "%d , %lf", &fval, &dbval) != 2) {
printf("# データフォーマットエラー '%s'\n", buf);
exit(1);
} else if (index >= sizeof(dbArray) / sizeof(dbArray[0])) {
printf("# データ数が最大個数(%d)を超過\n", sizeof(dbArray) / sizeof(dbArray[0]));
exit(1);
} else {
printf("[%d] [%lf]\n", fval, dbval);
freqArray[index] = fval;
dbArray[index] = dbval;
index++;
}
}
printf("%d 個のデータを取得しました\n", index);
// この時点で、index個のデータが freqArray[], dbArray[]に入ります
// それを処理すればよいでしょう
return 0;
}
|