2 aplacenear aplacenear 于 2014.04.22 21:37 提问

cin和getchar在C++程序的使用问题
c++

读取一组字符,程序如下
int num = 0;
char *a;
a = new char[num+1];
char c;

cout<<"请输入元素值: "< while((c = getchar()) != '\n')
{
num++;
}
for(int i = 0; i {
cin>>*(a+i);
}
运行完上面的while后下面的for循环cin好像就读不到数据了,死循环出不来,把while注释起来就不能输入数据了,直接跳到for循环我做的断点那里,这个怎么解决?

2个回答

u012771236
u012771236   2014.05.06 00:49

指针a只分配了一个字符的内存,就算后面把num++也不会增加内存的。
为什么不用cin.getline()呢?

max_min_
max_min_   Rxr 2014.05.09 16:28

for循环没有贴出完整代码,

还有a只是一个字节,++ 操作之后非法访问了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!