我的代码的第二部分没有运行,我不熟悉使用类

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 &gt;&gt; 输入带有空格的字符串时,当它到达一个空格时,它将假定它是输入的结尾。

为了解决这个问题,我们使用 getline()cin.getline()

也不要使用Return 0; 使用:

cin.sync();
cin.ignore();

在某些情况下return 0;

不会阻止终端关闭。

【讨论】:

以上是关于我的代码的第二部分没有运行,我不熟悉使用类的主要内容,如果未能解决你的问题,请参考以下文章

如何在 R 中解释自动 arima 结果的第二部分?

字符串不是空终止错误

Swift - 表格视图中的第二部分不可见

xml android指南约束布局

无法实例化抽象类我认为我搞砸了我的构造函数 C++

页面部分没有分开