- 締切済み
ファイルからの入力
たとえば, 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列 となった場合には,上記のソースのような書き方では,対応できないと思います. どのように,すればいいのでしょか?? ご教授,お願いいたします.
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.3
x,y とかしないで配列にして繰り返し処理する
- Trick--o--
- ベストアンサー率20% (413/2034)
回答No.2
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は普段使ってないので知らない。
- t_nojiri
- ベストアンサー率28% (595/2071)
回答No.1
その例えである、3行100列をどういう変数なり配列にどのような形で格納するのか決めればプログラム形式が決まるのでは無いでしょうか?