帮忙看看这个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个字符 展开
#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个字符 展开
2个回答
展开全部
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;
}这些没有任何意义
char *p1=new char[12];*p1=a; a还没有初始化
于是
cin>>a;
b=*p1++;*p2=b;
*p2++=*p1++;
*p2++='/0';
cout<<"显示它的前2位和3位数:"b;
}这些没有任何意义
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
你把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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询