-4

変数に格納されている数値を解析してchar[]、IF ステートメントを実行できるようにしようとしています。Atoi を使用してみましたが、うまくいきません。実装が間違っている可能性があります。

私もC ++でこれを行うには、ここに両方の​​コードスニペットがあります

C

char Data[50]; 

do{
    printf("Enter Data Number between 1-50:\n");
    scanf("%i", &pPacket->Data);

    atoi(&pPacket->Data);

    if(pPacket->Data < 1 || pPacket->Data > 50){
        printf("Incorrect Input Retry.\n");
    }
} while(pPacket->Data < 1 || pPacket->Data > 50);

C++

char Data[50];

do{
cout<<"Enter Port Number between 1-1024"<<endl;;
    cin>> Data;

    if(Data < 1 || Data > 50){
        cout<<"Incorrect Input Retry"<<endl;;
    }
}while(Data < 1 || Data > 50);
4

2 に答える 2

0

ユーザーに整数を入力してもらいたいので、おそらくint変数を使用して入力内容を保持する必要があります。

int port_number;

do{
    cout<<"Enter Port Number between 1-1024"<<endl;;
    cin>> port_number;

    if(port_number < 1 || port_number > 50){
        cout<<"Incorrect Input Retry"<<endl;;
    }
} while(port_number < 1 || port_number > 50);

ただし、これはまだ少し単純であることに注意してください。ユーザーが数値以外のもの (たとえば、「abc」) を入力すると、うまく処理されず、無限ループに陥ります。

于 2013-05-09T13:23:26.890 に答える