gpt4 book ai didi

c++ - while循环比较中getline的实现

转载 作者:行者123 更新时间:2023-11-30 01:15:55 27 4
gpt4 key购买 nike

我目前正在处理这个源代码,我想知道为什么这个逻辑实现不起作用?

有效的逻辑:

std::cout << "Enter a string (q to quit): ";
std::string str;
getline(std::cin, str);
while(str[0]!= 'q'){
// do stuff
}

行不通的逻辑:

std::cout << "Enter a string (q to quit): "; 
std::string str;
//getline(std::cin, str);
while(getline(std::cin, str) != "q")

我也试过让它比较“q\0”,因为我知道 getline 去掉了输入中的换行符并在末尾添加了一个空字符\0,但这也不起作用..是这个任务不可能?就是想节省几行代码空间啊哈哈...

最佳答案

std::getline() 函数不返回 std::string。它返回一个 std::istream& ,可用于链接更多输入操作,并且需要使用它来确定输入操作是否成功。您希望循环看起来像这样:

for (std::string str; std::getline(std::cin, str) && str != "q"; ) {
// do whatever needs to be done
}

关于c++ - while循环比较中getline的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27698026/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com