嘿,代码运行正常没有任何错误,但它只是跳转到返回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;
}
答案 0 :(得分:2)
因为您使用“cin&gt;&gt;”得到一个字符串!这是不可能的,改为使用“getline”,“cin”取一个空白来确定要获取哪个部分,例如:当你输入句子时:“退出Notepad ++。exe”,你的“x”是什么get只是一个“退出”,由于后面的空白。主要功能应该是这样的:
int main()
{
string x;
getline(cin,x);
List LisObj;
LisObj.SetNote("Exit Notepad++.exe");
if(LisObj.getNotepp() == x)
{
cout << "Hello World\n";
}
return 0;
}
答案 1 :(得分:1)
如果你想打印&#34; hello world&#34;:你可以这样做:
int main(){
string x;
cin >> x;
List LisObj;
LisObj.SetNote(x);
if(LisObj.getNotepp() == x){
cout << "Hello World\n";
}
return 0;
}
现在,如果您只想在用户输入&#34;退出Notepad ++。exe&#34;时打印hello world。不要这样做:
cin>>x;
因为您输入可能包含空格。而是使用getline()
或cin.getline()
答案 2 :(得分:0)
使用cin >>
输入带空格的字符串到达空格时,它会认为它是输入的结尾。
为了解决此问题,我们使用getline()
或cin.getline()
而不是使用Return 0;
使用:
cin.sync();
cin.ignore();
在某些情况下return 0;
不会阻止终端关闭。