2012-03-23 16 views
-6

このようなループでtxtファイルから読み取ることはできますか? ファイル名:input_1、input_2、...、input_20、 "input_k"の "k"は変数です。ループ内の* .txtファイルからの読み取り

for (int k=0; k<20; k++){ 
    fr = fopen("input_k", "r"){ 
     for (int i=0; i<width; i++){ 
      for (int j=0; i<height; i++){ 
       fscanf(fr, "%d", &input_k[i*width+j]); 
      } 
     } 
    } 
    fclose(fw); 
} 
+0

あなたが解決しようとしている特定の問題はありますか?あなたのために働かないものは何ですか?あなたは何を読もうとしていますか? – Bart

+2

そのコードはコンパイルされないので、答えは「いいえ」です。また、決して 'fclose(fr)'をしていないので、あなたは膨大な量のリソースを漏らしています。コンパイルする実際のコードを投稿してください。 –

+0

'input_k'の定義を追加してください – gbulmer

答えて

1

私はこのようなものは、あなたがC89、C99で動作しますこれは、を目指しているものだと思う、とを超えて:しかし

int k; 
int input[20][WIDTH][HEIGHT]; // where WIDTH and HEIGHT are 
           // compile-time constants 
... 
for (k=0; k<20; k++) 
{ 
    char fname[10]; 
    sprintf(fname, "input_%d", k); 
    FILE *fr = fopen(fname, "r"); 
    if (fr) 
    {  
    int i;  
    for (i=0; i<WIDTH; i++) 
    { 
     int j;   
     for (j=0; j<HEIGHT; j++) 
     {     
     fscanf(fr, "%d", &input[k][i][j]);    
     }   
    } 
    fclose(fr);  
    } 
} 

、私はあなたの意図について多くの仮定を作ってるんですここでは、これはあなたが本当に望むものではないかもしれません。

EDITはwidthheight変数を処分した、いくつかの誤字を修正しました。

+0

thats it!おかげ – user1281071

+0

それはところでC89に動作しません、C89は[]配列の指数化のために、*のようなもの(*(配列1)が6)(括弧はしかし、コンパイラでサポートされていることができる)を使用する必要がありましたサポートしていませんでした。 "[i]を== *(A + I)"。 – AoeAoe

+2

@AoeAoe:地球上でどのようなことをいっているのですか –

関連する問題