首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cin,cout 输入输出的离奇有关问题

2012-02-13 
cin,cout 输入输出的离奇问题我想实现的是用cin,cout把一个字符窜输入到一个字符数组中,并输出来在一个函

cin,cout 输入输出的离奇问题
我想实现的是用cin,cout把一个字符窜输入到一个字符数组中,并输出来

在一个函数内部这样可以实现
void   create()
{
......
char   temp[20];
.....
cin> > temp;
cout < <temp;

}

这样不会出问题。。
但是我要输入的数组指针的定义不在这个函数内部,而在一个类中
类的定义如下:
class   PCB
{
public:
......
char   name[21];
......
}
然后用这个类在堆空间定义了一个全局对象
PCB   *   p_free=new   PCB

然而我输入的时候如下:
cin> > p_free-> name;

结果就会出错。
编译可以通过,程序也可以运行,但运行到输入这里时,输入可以回显,一按回车,一会儿就弹出个错误,说什么什么内存不能为written.
我的编译环境是vc++   6.0

这是怎么回事呢?




[解决办法]
#include <iostream>
#include <string>
using namespace std;
class MyClass
{
public:
string str;
};

MyClass *p=new MyClass;

int main()
{
getline(cin,p-> str);
cout < <p-> str < <endl;
delete p;
system( "pause ");
return 0;
}

//之前的我写了个测试了一下,完全没有问题,LZ肯定是越界了,最好的解决的办法就是用string

热点排行