c++ - 在 C++ 中解析字符串中的数字

标签 c++ c if-statement

我正在尝试解析存储在 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/

相关文章:

c - Openwrt-创建固件布局描述失败

c - 使用 scanf 读取由/分隔的字符串和 int

java - Java中的引用变量有大小吗?

powershell - 使用 csv 的 ForEach 中的 If 语句

C 程序的函数似乎总是返回 true,但我不明白为什么

c++ - 使用哪个 c++ 免费库来捕获麦克风声音并将其保存为 wav

c++ - Win32 选项卡控件灰色背景

c++ - 如何编译用于 .net 应用程序的 C++ 程序?

c++ - boost::condition 会 boost 性能吗?

c# - 尝试在 c# 中使用多个选项执行内联 if 语句