gpt4 book ai didi

c++ - 如何在重载的提取运算符中读取行(忽略空格字符)

转载 作者:行者123 更新时间:2023-11-30 02:02:54 24 4
gpt4 key购买 nike

你好,我在重载的提取运算符中读取行时遇到问题(忽略空格字符)

这是我的代码,如果有任何帮助,我们将不胜感激

istream& operator>>(istream& is, CreditAccount& Cred){

cout << "Name: ";
is.getline(Cred.name, 256);
}

我的错误如下

error: no matching function for call to ‘std::basic_istream<char, std::char_traits<char> >::getline(std::string&, int)’

最佳答案

我们需要知道 Cred::name 的类型,但是根据您的错误,它似乎是一个 std::string。正确使用的函数是:

 #include <string> //for std::getline

istream& operator>>(istream& is, CreditAccount& Cred){
std::cout << "Name: ";
std::getline(is, Cred.name);
return is;
}

我还要强调,如果您使用 std::cout 来提示用户输入,那么您没有正确使用流提取运算符,它用于基本序列化和反序列化对象状态。不用于用户交互。我个人只会有一个“produce_credit_account()”函数或类似函数。

编辑:清除 std::cin

 std::cin.ignore(std::numeric_limits<std::streamsize>::max());

关于c++ - 如何在重载的提取运算符中读取行(忽略空格字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12638597/

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