鱼C论坛

 找回密码
 立即注册
查看: 2648|回复: 8

[已解决]关于C++的构造器与析构器

[复制链接]
发表于 2018-5-26 11:41:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我用小甲鱼的代码在终端输入图片里的那个几个文字
回车后却跟小甲鱼的视频不一样。我在想是不是std::getline的问题?各位鱼油请教一下
#include <iostream>
#include <string>
#include <fstream>

class StoreQuote
{
public:
        std::string quote, speaker;
        std::ofstream fileOutput;
       
        StoreQuote();//构造器
        ~StoreQuote();//析构器
       
        void inputQuote();
        void inputSpeaker();
        bool write();       
};

StoreQuote::StoreQuote()
{
        fileOutput.open("test.txt", std::ios::app);
}

StoreQuote::~StoreQuote()
{
        fileOutput.close();
}

void StoreQuote::inputQuote()
{
        std::getline(std::cin, quote);
}

void StoreQuote::inputSpeaker()
{
        std::getline(std::cin, speaker);
}

bool StoreQuote::write()
{
        if( fileOutput.is_open() )
        {
                fileOutput << quote << "|" << speaker << "\n";
                return true;
        }
        else
        {
                return false;
        }
}

int main()
{
        StoreQuote quote;
       
        std::cout << "请输入一句名言:\n";
        quote.inputQuote();
       
        std::cout << "请输入作者:\n";
        quote.inputSpeaker();
       
        if( quote.write() )
        {
                std::cout << "成功写入文件^_^";
        }
        else
        {
                std::cout << "写入文件失败T_T";
                return 1;
        }
       
        return 0;
}
最佳答案
2018-5-31 13:10:41
林二捆 发表于 2018-5-31 09:22
我感觉我输入的时候,跟你的不一样,我的就如照片,每次多出红色方框的那一行。输出来的txt就是   1234| ...

我在VC6试了一下,和你的结果完全一样
我百度了一下,发现这是VC6的问题
VC6太老了,有好多问题,用新的吧,例如VS2017



1.png
2.png
3.png

https://www.cnblogs.com/wanghao111/archive/2009/09/05/1560822.html
http://blog.sina.com.cn/s/blog_5372afbf01016vs6.html

终端文字输入

终端文字输入

输出的结果少了“作者”两字

输出的结果少了“作者”两字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-26 14:22:54 | 显示全部楼层
你是照打的吧。是不是打错了哪里,检测下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-26 16:27:10 | 显示全部楼层
ba21 发表于 2018-5-26 14:22
你是照打的吧。是不是打错了哪里,检测下

我也是怀疑过,但是这个代码我是用鱼币购买,用跟视频中的代码一样。所以鱼油再看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-26 20:42:31 | 显示全部楼层
林二捆 发表于 2018-5-26 16:27
我也是怀疑过,但是这个代码我是用鱼币购买,用跟视频中的代码一样。所以鱼油再看看

没有问题呀
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-30 08:40:55 | 显示全部楼层

当我输入名言后,我要按两次回车,然后才输入作者。然后到txt文件去看就是我截图的那样子了。你的终端属于是怎么输的?也顺便截个图给我!谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-30 15:37:15 | 显示全部楼层
林二捆 发表于 2018-5-30 08:40
当我输入名言后,我要按两次回车,然后才输入作者。然后到txt文件去看就是我截图的那样子了。你的终端属 ...

GIF.gif
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-31 09:22:27 | 显示全部楼层

我感觉我输入的时候,跟你的不一样,我的就如照片,每次多出红色方框的那一行。输出来的txt就是   1234|空格,我的感觉就是这样。不过在小甲鱼的代码上加了一句std::cin.sync();
输出来的结果就是我所想要的结果了。所以,我在想,是不是因为空格或者回车的 问题?
微信图片_20180531091400.png
微信图片_20180531091924.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-31 13:10:41 | 显示全部楼层    本楼为最佳答案   
林二捆 发表于 2018-5-31 09:22
我感觉我输入的时候,跟你的不一样,我的就如照片,每次多出红色方框的那一行。输出来的txt就是   1234| ...

我在VC6试了一下,和你的结果完全一样
我百度了一下,发现这是VC6的问题
VC6太老了,有好多问题,用新的吧,例如VS2017



1.png
2.png
3.png

https://www.cnblogs.com/wanghao111/archive/2009/09/05/1560822.html
http://blog.sina.com.cn/s/blog_5372afbf01016vs6.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-3 23:56:53 | 显示全部楼层
人造人 发表于 2018-5-31 13:10
我在VC6试了一下,和你的结果完全一样
我百度了一下,发现这是VC6的问题
VC6太老了,有好多问题,用新 ...

多谢大神知道。在下佩服。真的很感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-29 22:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表