我正在尝试解析存储在 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);
最佳答案
由于您希望用户输入整数,因此您可能需要使用 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”),这将无法很好地处理它 - 它将陷入无限循环。
关于c++ - 在 C++ 中解析字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16462696/