为了账号安全,请及时绑定邮箱和手机立即绑定

自己写了一个类,但是输出有问题

https://img1.sycdn.imooc.com//5b713f5d0001102210440595.jpg

这是调试界面,下面是代码,求助啊,为什么输出有烫口

#include"stdafx.h"

#include <string.h>

#include <iostream>

using namespace std;


class Dogs

{

public:

char name[5];

int age;

void dogspeak()

{

cout << "wang wang !!" << endl;

}

void dogrun()

{

cout << "I am running !!" << endl;

}

};

int main(void)

{

Dogs white_dog;

Dogs *p = new Dogs();

if (NULL == p)

{

//falsed

return 0;

}

cout << "please input your dog's name:" << endl;

for (int i = 0; i < 5; i++)

{

cin >> white_dog.name[i];

}

cout << "The dog is ______ years old." << endl;

cin >> white_dog.age;

cout << "The white dog is " << white_dog.age << " years old." << endl;

cout << "name is " << white_dog.name << endl;


cout << "please input your another dog's name:" << endl;

for (int i = 0; i < 5; i++)

{

cin >> p->name[i];

}

cout << "The another dog is ______ years old." << endl;

cin >> p->age;

cout << "The " << p->name <<" dog is " << p->age << " years old." << endl;

cout << "name is " << p->name << endl;

delete p;

p = NULL;

system("pause");

return 0;

}


正在回答

1 回答

出现烫之类的乱码,很可能是访问的地方没有数据。当然这个地方可以改写为如下方法,让用户输入的数据一次性读入到输入缓冲区,而避免一次次输入到缓冲区而带来的不确定的错误。经过测试,将for循环的代码改成下列代码,可以成功运行:

cin.getline(white_dog.name, 6);cout << "name is " << white_dog.name << endl;
1 回复 有任何疑惑可以回复我~
#1

綾小路清隆 提问者

正常运行 了,谢谢指教!!
2018-08-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103410    人
  • 解答问题       701    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

自己写了一个类,但是输出有问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信