次のようなパケットをエミュレートするために使用している構造体があります。
typedef struct{
int source;
int dest;
int type;
int port;
char data[50];
}test;
test packet[50];
そして、データフィールドにあるものをすべて画面に出力しようとしています。私の現在のコードは次のようになります。
printf("Enter a series of data numbers from 1-50: ");
scanf("%c", &packet[i].data[i]);
while (packet[i].data[i] > 48 || packet[i].data[i] > 57)
{
printf("Data series needs to be between 1-50, try again: ");
scanf("%c", &packet[i].data[i]);
}
printf("%c \n", packet[i].data[i]);
それをいじってコンパイルすることができました.402018が返されることもあれば、Xが返されることもあり、コードを完全にスキップすることもあります.
誰かが私が間違っているところを見ることができますか? packet[i] の現在のインスタンスで char 配列全体を出力したい (パケットが作成されるたびにインクリメントされます)
while ステートメントは、入力された文字が数値であることを確認するためのものであり、ASCII によれば、数値はその範囲内にあります。
私に優しくしてください、私はこれに非常に慣れていません。
どうもありがとう。