问一下C++primer习题4.28

aweer 2009-02-27 03:39:53
问一下这程序大家能帮我看下吗。。这段程序是读入元素建立一个int型的vector对象,然后动态创了个与vector对象大小一致的数组,把vector对象的所有元素复制给新数组

我输出了一串数字回车后就出现了个随机数。。我这哪里错了??。。帮帮忙



#include <iostream>
#include <vector>
using namespace std;
int main ()
{
vector<int> ivec;
int ival;
cout<<"Enter numbers:(Ctrl+Z to end)"<<endl;
while(cin>>ival)
{
ivec.push_back(ival);
}
int *pia=new int[ivec.size()];
int *tp=pia;
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter,++tp)
{
*tp=*iter;
}
cout<<*pia<<endl;
delete[] pia;
return 0;
}
...全文
132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangshuiling 2009-02-27
  • 打赏
  • 举报
回复

while(cin>>ival)
这个问题已经讲了很多遍了,如果输入的值大于UINT_MAX,也就是2的32次方减一 ival
超过输入的整数范围,cin>>ival失败,退出循环得到ival的初值!而楼主的ival没有
初始化即为随机值。
waizqfor 2009-02-27
  • 打赏
  • 举报
回复
我这没问题 LZ
aweer 2009-02-27
  • 打赏
  • 举报
回复
晕。。说我分不够。。只能另类结贴了大家不好意思
aweer 2009-02-27
  • 打赏
  • 举报
回复
原来我大意了。。输入的数太大了晕
  • 打赏
  • 举报
回复
跑了没有问题啊。楼主讲讲你输入的过程。
ssdx 2009-02-27
  • 打赏
  • 举报
回复
cout<<*pia<<endl;
编译器怎么知道你要输出到哪里停?
pengzhixi 2009-02-27
  • 打赏
  • 举报
回复
DEV下运行正常
pengzhixi 2009-02-27
  • 打赏
  • 举报
回复
没出现你说的那种情况.

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧