我的代码的第二部分没有运行,我不熟悉使用类
Posted
技术标签:
【中文标题】我的代码的第二部分没有运行,我不熟悉使用类【英文标题】:The Second part of my code isn't running and i'm new to using classes 【发布时间】:2013-12-01 02:22:21 【问题描述】:嘿,代码运行良好,没有任何错误,但它只是跳转到返回 0。 我还想指出,我是 C++ 的新手,而且我刚刚开始使用类。
感谢您的帮助!
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
class List
public:
void SetNote(string Note)
Notepp = Note;
string getNotepp()
return Notepp;
private:
string Notepp;
;
int main()
string x;
cin >> x;
List LisObj;
LisObj.SetNote("Exit Notepad++.exe");
if(LisObj.getNotepp() == x)
cout << "Hello World\n";
return 0;
【问题讨论】:
你希望它做什么? 您希望程序做什么?您已经告诉它仅在字符串相同时才打印“Hello World” - 显然它们不会相同,因为您设置了string Notepp
,而您没有以相同的方式设置string x
。
你的意思是“跳跃”?!
好吧,如果 x 与 Notepp 相同,我只想让程序执行 if 语句中的代码。我所说的跳转是指在“cin”之后输入 x 的值后它只是结束程序它只是“跳转”返回 0;
【参考方案1】:
因为你用"cin>>"来获取字符串!那是不可能的,用"getline"代替,"cin"取一个空格来确定要获取哪个部分,例如:当你输入句子时:"退出Notepad++.exe",你的"x"得到的只是一个"Exit",因为后面是空白。主函数应该是这样的:
int main()
string x;
getline(cin,x);
List LisObj;
LisObj.SetNote("Exit Notepad++.exe");
if(LisObj.getNotepp() == x)
cout << "Hello World\n";
return 0;
【讨论】:
【参考方案2】:如果你想打印“hello world”:你可以这样做:
int main()
string x;
cin >> x;
List LisObj;
LisObj.SetNote(x);
if(LisObj.getNotepp() == x)
cout << "Hello World\n";
return 0;
现在,如果您只想在用户输入“退出 Notepad++.exe”时打印 hello world。不喜欢:
cin>>x;
您输入的内容可能包含空格。而是使用getline()
或cin.getline()
【讨论】:
【参考方案3】:当您使用cin >>
输入带有空格的字符串时,当它到达一个空格时,它将假定它是输入的结尾。
为了解决这个问题,我们使用 getline()
或 cin.getline()
也不要使用Return 0;
使用:
cin.sync();
cin.ignore();
在某些情况下return 0;
不会阻止终端关闭。
【讨论】:
以上是关于我的代码的第二部分没有运行,我不熟悉使用类的主要内容,如果未能解决你的问题,请参考以下文章