我正在使用 Atoi 处理我的 If 语句

I'm struggling with my If-statement using Atoi

我正在尝试制作票证客户代码,目前正在显示我的 "customers"。我希望它是这样的,如果我输入 "blank, like nothing then enter" 我希望我自己的 DTA 文件中的所有客户都在我的输出中。换句话说就是显示,看看有哪些客户注册了。

void Customer::DisplayCustomer() {
    cin.getline(buffer, MAXTEXT)
    buffernr = atoi(buffer)   //I need to convert text to numbers. 

    if (buffer[0]=='A' && buffer[1] == '[=10=]')
    // (Here I have a function which displays everything) don't focus on this one
}

我要问的是,我必须输入什么,才能让我的代码理解我想为按下 Enter 而没有输入任何内容的人提供一个 if 语句,我的显示客户功能将 ​​运行.我也尝试过 (If buffer[0]=='\n') 但这也行不通。

此代码检查缓冲区是否为空

#include <iostream>

int MAXTEXT{300};

int main() {
    char buffer[MAXTEXT];
    std::cin.getline(buffer, MAXTEXT);
    if (buffer[0] == '[=10=]') {
        std::cout << "Empty" << std::endl;
    }
    return 0;
}

std::string 的更好解决方案是

#include <string>
#include <iostream>

int main() {
    std::string buffer;
    std::getline(std::cin, buffer);
    if (buffer.empty()) {
        std::cout << "Empty" << std::endl;
    }
    return 0;
}

您似乎想对您的用例使用 std::getline() 而不是 std::istream::getline()

void Customer::DisplayCustomer() {
    std::string buffer;
    std::getline(std:cin,buffer);
    std::istringstream iss(buffer);
    int buffernr;
    if(!(iss >> buffernr)) { // This condition would be false if there's no numeric value
                             // has been entered from the standard input
                             // including a simple ENTER (i.e. buffer was empty)
         // (Here i have a function which displays everything) don't focus on this 
         //  one
    }
    else {
        // Use buffernr as it was parsed correctly from input
    }
}