文字配列を動的に入力し、含まれている値が有効な整数であるかどうかを確認したいのですが、これまでに得たものは次のとおりです。
for(int i = 0; i < 50000; i++)
{
if(input[i] == ',')
{
commaIndex = i;
}
}
commaIndex はファイル内のコンマのインデックスです。数値はコンマの前に入力する必要があります。ファイルは次のようになります: -44,5,19,-3,13,(etc), この部分で重要です:
char *tempNumber = new char[commaIndex];
tempNumber を入力します (おそらく、動的割り当てのために数値と同じ大きさになるはずです)。そのため、サイズ 50000 の文字配列 (名前付き入力) に数値がありません。
for(int i = 0; i < commaIndex; i++)
{
cout << i << "\n";
tempNumber[i] = input[i];
}
そして今、私はそれを使いたい:
if(!isValidInteger(tempNumber))
{
cout << "ERROR!\n";
}
残念ながら、「commaIndex」の値に関係なく、tempNumber は常にサイズ 4 のようです。つまり、次の出力が得られます。
(入力データ: 50000,3,-4)
commaIndex: 5 tempNumber: 5000 の内容 (0 が 1 つ欠落)
commaIndex: tempNumber の 1 コンテンツ: 3²²² (3 つの ^2 に注意してください)
commaIndex: 2 tempNumber の内容: -4²²
何か案は?
もう 1 つ: これは宿題のためのものであり、C++ のオブジェクト指向要素を使用することは許可されていません (これには文字列とベクトルが含まれます。私はそこに行ったことがあり、とても簡単であることはわかっています)。
ありがとう、
デニス