gpt4 book ai didi

c++ 帮助读取 stdin 和 stdout 。还有运算符重载

转载 作者:行者123 更新时间:2023-11-28 08:21:00 32 4
gpt4 key购买 nike

我需要有关这部分代码的帮助...我应该将两个 double 传递给 schmoo。如果我这样做“Schmoo(8.0,9.0);”它可以找到,但是当我按原样尝试时,出现错误。我应该从 cin 读取输入,看起来像这样“add schmoo 8.0 7.0”我想我提取 double 是错误的,如何正确地从 cin 中提取每个东西。只要他们输入,我就需要继续。

 while(cin){
string command1 = "add schmoo";
string input;
cin >> input;
double a,b;
if(input == command1){
cin >> a >> b;
Schmoo *a = new Schmoo(a,b);
c.insertFront(a);
}
string command2 = "throw mud";

if(input == command2){
cin >> a >> b;
c.throwMudAt(a,b);
}

此外,我还需要有关重载此运算符的帮助:

ostream &operator<<(ostream &os, Schmoo &s){
if(s.getMud() == 1){
os << "Schmoo at (" << s.x << ", " << s.y << ") was hit mud " << mud << "time.";
}
os << "Schmoo at (" << s.x << ", " << s.y << ") was hit with mud" << mud << "times.";
return os;
}

我收到一个与 s.getMud() 有关的错误;我以前用过通过指针获取泥浆,但是这个类与任何具有指针的类都不是 friend 。但是 getMud 是它所在的同一类的函数,我该如何使用 getMud();在这种情况下。

最佳答案

cin 一直读取到它遇到的第一个空格,所以 input 字符串只会是“add”,而不是“add schmoo”。最好读取第一个字符串,检查它是否为“add”,然后读取下一个字符串(您可能想要添加到 more than schmoo),然后读取 double。或者将命令更改为“add_schmoo”。


对于您的重载,Schmoo 类是如何定义的?

关于c++ 帮助读取 stdin 和 stdout 。还有运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5844255/

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