首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在调用std :: getline之前检查数据可用性

在调用std::getline之前检查数据可用性,可以确保程序在尝试从输入流中读取数据之前,确保输入流中有可用的数据。这可以通过检查输入流的状态来实现。

在C++中,可以使用输入流的good()成员函数来检查输入流是否处于可用状态。例如:

代码语言:c++
复制
#include<iostream>
#include<string>

int main() {
    std::string input;

    while (std::cin) {
        if (std::cin.good()) {
            std::getline(std::cin, input);
            std::cout << "Input: "<< input<< std::endl;
        } else {
            std::cout << "Invalid input"<< std::endl;
            break;
        }
    }

    return 0;
}

在上面的代码中,我们使用while (std::cin)循环来持续读取输入流中的数据,直到输入流被关闭或发生错误。在每次循环中,我们使用if (std::cin.good())来检查输入流是否处于可用状态。如果输入流可用,则使用std::getline()函数从输入流中读取一行数据,并将其存储在input变量中。如果输入流不可用,则输出错误消息并退出循环。

这种方法可以确保在调用std::getline()函数之前,输入流中有可用的数据,从而避免程序崩溃或出现未定义行为。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券