0

C のコードをいくつか変更しました。mingw を gnu gcc コンパイラーと Codeblocks を IDE として使用しています。コードはこれでコンパイルされ、うまく機能します。しかし、リモート Linux サーバー、または実際には任意の Linux システムでコードを実行しようとすると、実行されません。コンパイルは問題ありませんが、実行が問題です。関連すると思われるコードの一部を示します。

short ReadNumRuns(FILE* File_Ptr)
{
  char buf[STRLEN];
  short n=0;

  FindDataLine(File_Ptr); /* skip file version. */

  strcpy(buf, FindDataLine(File_Ptr));
  if(buf[0]=='\0') nrerror("Reading number of runs\n");
  sscanf(buf, "%hd",&n);
  printf("%s", buf);
   printf("Number of runs: %hd ", n);
  return(n);
}

void ReadFnameFormat(FILE *File_Ptr, InputStruct *In_Ptr)
{
  char buf[STRLEN];

  /** read in file name and format. **/
  strcpy(buf, FindDataLine(File_Ptr));
  printf("%s", buf);
  if(buf[0]=='\0')
    nrerror("Reading file name and format.\n");
  sscanf(buf, "%s %c",In_Ptr->out_fname, &(In_Ptr->out_fformat) );
  printf("%s", In_Ptr->out_fname);
  printf("%c", In_Ptr->out_fformat);
  if(toupper(In_Ptr->out_fformat) != 'B')
    In_Ptr->out_fformat = 'A';
 }

これら 2 つの関数は、実行回数と出力ファイル名を読み取るためのものです。最初の機能は機能しますが、2 番目の機能は機能しません。これ以降、さらに入力関数が行をスキップしているように見えます。sscanf がこの関数の同じ行から 2 つのパラメーターを読み取るためだと思います。Linux gcc コンパイラーと gnu gcc コンパイラーで sscanf に違いはありますか? 前もって感謝します。

完全なコードを見たい場合は、http: //omlc.ogi.edu/software/mc/ と MCML 部分にアクセスしてください。

4

0 に答える 0