C言語のプログラムでつまづいています。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mag

C言語のプログラムでつまづいています。

#1

投稿記事 by mag » 12年前

はじめて利用させていただきます。
お知恵を借りたく、どうぞよろしくお願いします。

コード:

  char     pic_nm     [7];
  char     *task_pc   [10];
 :
 :
  no = 0;
  fSCE    = fopen("test.log","r");
  while ( fgets(buf,CLMN_SIZE,fSCE) != NULL ) {

    wd    = "Picture";
    cmp   = strstr(buf,wd);

    if (cmp1 != NULL) {
      if (buf[0] == 'P') {
        sscanf(buf,"Picture %s %*s %*d %*d %*d %*d %*d %*d\n",pic_nm);
        task_pc[no] = pic_nm;
        no = no + 1;
      }
    }
  }
  fclose(fSCE);
 


上記コードで、pic_nmに希望データが入っているのは確認できましたが、
task_pc[no] = pic_nm;
でtask_pc配列へ入力する際に、
入力する度に task_pc[]配列の全て task_pc[0]~[no]へ同じ pic_nm 内容が
上書き入力されてしまい、
結果、 task_pc[]の10データすべてに最後に取り込んだ pic_nm が入っている状況になっています。

いろいろと調べてしまいましたが、どうにもいかなく行き詰ってしまいました。
どうぞご教授くださいm(_ _)m

かずま

Re: C言語のプログラムでつまづいています。

#2

投稿記事 by かずま » 12年前

試していませんが、これでどうでしょう。

コード:

  char task_pc[10][7];

      if (buf[0] == 'P') {
        sscanf(buf,"Picture %s",task_pc[no]);
        no = no + 1;
      }
 

閉鎖

“C言語何でも質問掲示板” へ戻る