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