我的代码的第二部分没有运行,我是新手使用类

时间:2013-12-01 02:22:22

标签: c++ string class

嘿,代码运行正常没有任何错误,但它只是跳转到返回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;
}

3 个答案:

答案 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;

不会阻止终端关闭。