0

私が書いたコードでは、文字列を受け取り、10 進数のみが含まれているかどうかを確認してから、文字列を int に変換します。ただし、私のコードでatoiは、文字列ではなく 0 を返しますint。誰かが私が台無しにしている場所を教えてもらえますか?

while (!sucess || 0 == Entries){
  delete [] bufferptr;
  buffer = nullptr;
  buffer = new char [MAX];
  bufferptr = buffer;

  cin.getline(buffer, MAX, '\n');


  while (*buffer){
    if (isdigit(*buffer++)){
      success = true;
    } else {
      success = false;
      break;
    }
  }
  if (success){
    numEntries = atoi(buffer);
    cout << endl << numEntries << endl;
    }
  }      
4

2 に答える 2

1

抽出演算子を使用して、ストリーム コンテンツを次のように直接解析できますint

std::cin >> numEntries;

エラー チェックについては、http://en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt2を参照してください。

于 2013-06-12T07:35:21.860 に答える