AIと戦って、あなたの人生のリスク診断 >>

たとえば,
3行2列のテキストデータ
1 2
3 4
5 6

を,ファイルから読み込むとします.

入力用オブジェクトとして
ifstream fin;
として,
while (!fin.eof()) {
fin >>x>>y;
x_array[i]=x;
y_array[i]=y;
i++;
}
といった感じでファイルから入力しています.

2列程度なら問題ないと思うのですが,
入力データが,たとえば
3行100列
となった場合には,上記のソースのような書き方では,対応できないと思います.

どのように,すればいいのでしょか??

ご教授,お願いいたします.

A 回答 (3件)

x,y とかしないで配列にして繰り返し処理する

    • good
    • 0

C言語的手法を使ってもよいのなら、


fgets()で一行とって、strtok()で列を分解する。

while(1){
 if(fgets(szBuf, MAX_LEN, FP) == NULL) {
  break;
 }

 nData[i][0] = atoi(strtok(szBuf," "));
 for(j = 1; j < 100; j++) {
  nData[i][j] = atoi(strtok(NULL," "));
 }
 i++;
}

streamは普段使ってないので知らない。
    • good
    • 0

その例えである、3行100列をどういう変数なり配列にどのような形で格納するのか決めればプログラム形式が決まるのでは無いでしょうか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング