0

ファイルからデータを読み取っていますが、以下のデータから整数のみを抽出する必要があります。どうすればそれを実行できますか?ありがとう。

入力はfield6になり、これらの文字「];」を削除する必要があります。そしてそれを整数変数に格納します。

私のコード:-

field6 = strtok(NULL," ");
if (isdigit(field6))
{
   weight = atoi (field6);
   printf("%d\n",weight);
}

入力:

43];
2];
4];
16];
25];

出力:

43
2
4
16
25
4

2 に答える 2

0

試す

field6 = strtok(NULL,"\n");
weight = atoi (field6);
printf("%d\n",weight);

これは、atoiが必要なことを正確に実行するまれな条件の1つです。

検出されないエラー状態は「];」です。それはゼロとして解釈されます。

于 2012-12-02T00:11:20.200 に答える
-1

sscanfがない場合:

#include <stdio.h>

int main(int argc, char** argv)
{
  const char *test = "123];";

  int i = 0;

  const char *p = test;
  while (*p && isdigit(*p))
  {
    if (p != test) i *= 10;
    i += *p - '0';
    ++p;
  }

  if (*p != ']')
  {
    // we have an error!
    return 1;
  }

  printf("%i\n", i);
}
于 2012-12-01T22:27:44.297 に答える