帮忙看看这个C++程序错在哪了? 10

我是想先输入一个5位数,再显示它的前2位和3位数#include<iostream.h>voidmain(){chara,b;char*p1=newchar[12];*p... 我是想先输入一个5位数,再显示它的前2位和3位数
#include<iostream.h>
void main()
{
char a,b;
char *p1=new char[12];*p1=a;
char *p2=new char[12];
cout<<"输入一个5位数:";
cin>>a;
b=*p1++;*p2=b;
*p2++=*p1++;
*p2++='/0';
cout<<"显示它的前2位和3位数:"b;
}
搞错了 是输入5个字符 显示第2个和第3个字符
展开
 我来答
ivaniren
2007-11-16 · TA获得超过1471个赞
知道小有建树答主
回答量:1088
采纳率:0%
帮助的人:0
展开全部
char a,b;
char *p1=new char[12];*p1=a; a还没有初始化
于是
cin>>a;
b=*p1++;*p2=b;
*p2++=*p1++;
*p2++='/0';
cout<<"显示它的前2位和3位数:"b;
}这些没有任何意义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皮皮爱运动
2007-11-16 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:122万
展开全部
char *p1=new char[12];*p1=a;

你把p1指向了一个新申请的内存,然后又把这块空间的第一个元素填了一个没有初始化的a这个值,
然后你往a这个char型的空间里面输入东西
b给了p1数组的第二个元素,这个元素没有初始化的,很可能是空的0或者乱码。继而你又把这个不知道是什么值放到了p2第一个位置;
很显然,你不太会用指针。
你想的cin输入的是一个字符串,事实上,它输入的只是一个字符。
也许可以这么改 :/* 强烈建议不要用new了,new了不要忘记delete,这么小的数组。。 */
#include<iostream.h>
void main()
{

char p1[12]="";
char p2[12]="";

cout<<"输入一个5位数:";
cin>>p1;

p2[0]=p1[1];
p2[1]=p1[2];

cout<<"显示它的前2位和3位数:"b;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式