c++ 的cin输入和类型通用的问题
代码如下:inta=1;charb='A';cin>>a;cout<<a<<endl;a=b;cout<<a<<endl;输入大写A,结果是165我想问的是,为什么我输入...
代码如下:
int a=1;
char b='A';
cin>>a;
cout<<a<<endl;
a=b;
cout<<a<<endl;
输入大写A,结果是
1
65
我想问的是,为什么我输入A,变量a没接受这个赋值,而char b='A';a=b;却能成功赋值(65),输入的数据是以什么形式什么类型存储的?不是ascii码的形式吗?
我的意思是,一个字节内char类型和int类型是通用的,char b='A';a=b;和我自己输入A有什么区别?我输入的A是什么类型的? 展开
int a=1;
char b='A';
cin>>a;
cout<<a<<endl;
a=b;
cout<<a<<endl;
输入大写A,结果是
1
65
我想问的是,为什么我输入A,变量a没接受这个赋值,而char b='A';a=b;却能成功赋值(65),输入的数据是以什么形式什么类型存储的?不是ascii码的形式吗?
我的意思是,一个字节内char类型和int类型是通用的,char b='A';a=b;和我自己输入A有什么区别?我输入的A是什么类型的? 展开
展开全部
//自定义控件, 然后在工具箱拖过来用 再把BackColor 设置为Transparent
public partial class TransparentListBox : ListBox
{
public TransparentListBox()
{
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
}
protected override void OnSelectedIndexChanged(EventArgs e)
{
this.Invalidate();
base.OnSelectedIndexChanged(e);
}
protected override void OnPaint(PaintEventArgs e)
{
if (this.Focused && this.SelectedItem != null)
{
Rectangle itemRect = this.GetItemRectangle(this.SelectedIndex);
e.Graphics.FillRectangle(Brushes.Green, itemRect);
}
for (int i = 0; i < Items.Count; i++)
{
e.Graphics.DrawString(this.GetItemText(Items[i]), this.Font, new SolidBrush(this.ForeColor), this.GetItemRectangle(i));
}
base.OnPaint(e);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-04-01
展开全部
兰表达式解析方程!
char *p = new char[2000];
cin>>p;
p写成char*就好了!
p=new char[1000];//向系统申请1000个单元!
cin>>p//输入字符串!
然后判断字符串!
然后比如你准备带入x,y吧,那么x,y值固定了。
用数据结构的逆波兰表达式计算表达这个函数就好了!
至于逆波兰表达式,你可以到网上找,就是数据结构栈的部分,很简单。但很冗长!
我就不写了。你自己好好学习吧。
另外,站长团上有产品团购,便宜有保证
char *p = new char[2000];
cin>>p;
p写成char*就好了!
p=new char[1000];//向系统申请1000个单元!
cin>>p//输入字符串!
然后判断字符串!
然后比如你准备带入x,y吧,那么x,y值固定了。
用数据结构的逆波兰表达式计算表达这个函数就好了!
至于逆波兰表达式,你可以到网上找,就是数据结构栈的部分,很简单。但很冗长!
我就不写了。你自己好好学习吧。
另外,站长团上有产品团购,便宜有保证
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的a是整型 而cin>>a 你输入A 传了一个字符型 不匹配 这是会返回一个错误的cin 即a也没有被赋值 这时候的cin应该也不能用了。 而a=b则有一个隐形的强制类型转换
追问
按照书上的解释是,字符A和十进制的65的内存存储形式是一样的,都是ascii码,只是类型不同理解也就不同,但是为什么我输入的A却不能赋值65给变量a呢?而char b='A';a=b;却可以?
追答
赋值操作符有提供隐式强制类型转换 cin却没有 输入的类型不匹配就会返回一个错误的不可用的cin
a=b
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为A与int类型不匹配
你可以试着把
int a = 1;改为
char a = 1;
试下。
你可以试着把
int a = 1;改为
char a = 1;
试下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询