为什么char型可以输入整型,而int型的却不能输入字符?

a765032525 2010-02-09 03:20:25
#include <iostream.h>
main()
{
//输入输出字符
char c;
cin>>c;
cout<<"c="<<c<<endl;

//输入输出整型数据
int n;
cin>>n;
cout<<"n="<<n<<endl;


}

我用VC6.0的编译器,在int型时候,我一输入字符型的程序就结束了。是不是int型的不能输入字符?
...全文
1718 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
adamgsc 2010-10-14
  • 打赏
  • 举报
回复 1
我也问一个问题,目标程序需要读入用户输入的整型数据,如何在程序上实现防止用户输入字符或字符串?也就是说,当用户输入非数字时向用户提示错误信息?请指教!
Cpp权哥 2010-02-15
  • 打赏
  • 举报
回复
楼主的问题根源在于:你可能认为字母和一些符号才算字符。其实,翻开字符ascii表,你可以看到数字字符也是字符,制表符、换行符、分页符、空字符之类的也列在其中,也就是说,'a'是字符,'1'同样是字符,所以输入字符的时候,你可以输入a,也可以输入1,都同样是一个字符。但是在输入整数的时候,你只能输入一串数字代表一个整数,如果你输入的是字母,它无法代表一个整数,输入失败,可能导致后续的输入无法正常进行,甚至导致后续的程序执行不正常。
shiweifu 2010-02-15
  • 打赏
  • 举报
回复

#include <stdio.h>

int main()
{
int ch;
ch = getch();
printf("ch is %c\r\n",ch);
return 0;
}



可以输入字符呀
布拉格曼 2010-02-15
  • 打赏
  • 举报
回复
楼主看看:


#include <iostream>
using namespace std;

int main ( void )
{
//输入输出字符
char c;
cout << "Please input a character: ";
cin >> c;
cout << "c=" << c << endl;

//输入输出整型数据
int n;
cout << "Please input a number: ";
cin >> n;
cout << "n=" << n << endl;
cout << "Another form of the number " << n << ": " << (char) n << endl;

return (0);
}


看看是不是这个测试的结果:

Please input a character: m
c=m
Please input a number: 65
n=65
Another form of the number 65: A
MTH3678~ 2010-02-15
  • 打赏
  • 举报
回复
引用 7 楼 steptodream 的回复:
引用 6 楼 chenzongquan1973 的回复:楼主的问题根源在于:你可能认为字母和一些符号才算字符。其实,翻开字符ascii表,你可以看到数字字符也是字符,制表符、换行符、分页符、空字符之类的也列在其中,也就是说,'a'是字符,'1'同样是字符,所以输入字符的时候,你可以输入a,也可以输入1,都同样是一个字符。但是在输入整数的时候,你只能输入一串数字代表一个整数,如果你输入的是字母,它无法代表一个整数,输入失败,可能导致后续的输入无法正常进行?-
这个解释比较通俗易懂

很精辟,对于计算机来讲,计算机最终接受的就是数字。字符也是由数字代表的,最终到计算机其实都是0或者1.
steptodream 2010-02-15
  • 打赏
  • 举报
回复
引用 6 楼 chenzongquan1973 的回复:
楼主的问题根源在于:你可能认为字母和一些符号才算字符。其实,翻开字符ascii表,你可以看到数字字符也是字符,制表符、换行符、分页符、空字符之类的也列在其中,也就是说,'a'是字符,'1'同样是字符,所以输入字符的时候,你可以输入a,也可以输入1,都同样是一个字符。但是在输入整数的时候,你只能输入一串数字代表一个整数,如果你输入的是字母,它无法代表一个整数,输入失败,可能导致后续的输入无法正常进行?-

这个解释比较通俗易懂
ladliu 2010-02-15
  • 打赏
  • 举报
回复
引用 6 楼 chenzongquan1973 的回复:
楼主的问题根源在于:你可能认为字母和一些符号才算字符。其实,翻开字符ascii表,你可以看到数字字符也是字符,制表符、换行符、分页符、空字符之类的也列在其中,也就是说,'a'是字符,'1'同样是字符,所以输入字符的时候,你可以输入a,也可以输入1,都同样是一个字符。但是在输入整数的时候,你只能输入一串数字代表一个整数,如果你输入的是字母,它无法代表一个整数,输入失败,可能导致后续的输入无法正常进行?-


最近正在研究您的视频呢~~~嚯嚯~~~~
ruru605 2010-02-15
  • 打赏
  • 举报
回复
6楼的表达能力真的好强啊,佩服
cocat 2010-02-15
  • 打赏
  • 举报
回复
引用 6 楼 chenzongquan1973 的回复:
楼主的问题根源在于:你可能认为字母和一些符号才算字符。其实,翻开字符ascii表,你可以看到数字字符也是字符,制表符、换行符、分页符、空字符之类的也列在其中,也就是说,'a'是字符,'1'同样是字符,所以输入字符的时候,你可以输入a,也可以输入1,都同样是一个字符。但是在输入整数的时候,你只能输入一串数字代表一个整数,如果你输入的是字母,它无法代表一个整数,输入失败,可能导致后续的输入无法正常进行?-


绝对的精辟~~
tian545882735 2010-02-14
  • 打赏
  • 举报
回复
你没有用强制数据类型转换!!!!!
而在int型的时候
没有char型变量储存啊
tbwork 2010-02-09
  • 打赏
  • 举报
回复
#include<stdlib.h>
#include<stdio.h>
void main()
{
char a='a';
printf("%d\n",a);//output 97
printf("%c\n",a);//output 'a'
int b='a';
printf("%d\n",b);//output 97
printf("%c\n",b);//output 'a'
//由此可见 char中定义的每一个字符都对应了一个int值[ASSCI 共127个字符对应着0~126]。关键你是把他当成什么了,
//楼主的程序输入字符后,我这边没有n=0,我也用C++编程,不过对于输入类型不匹配,我一般不钻空子
//自己写一个判断函数,cout的"<<"是个重载运算符,如果不能输出正确答案,那么说明<<重载欠缺考虑
}

飞天御剑流 2010-02-09
  • 打赏
  • 举报
回复
引用楼主 a765032525 的回复:
#include <iostream.h> 
main()
{
    //输入输出字符
    char c;
    cin>>c;
    cout < <"c=" < <c < <endl;

    //输入输出整型数据
    int n;
    cin>>n;
    cout < <"n=" < <n < <endl;

 
}

我用VC6.0的编译器,在int型时候,我一输入字符型的程序就结束了。是不是int型的不能输入字符?


int类型的变量当然不能直接输入字符,对于cin来说,这是错误,会产生failbit错误的。
lovesi3344 2010-02-09
  • 打赏
  • 举报
回复
#include <iostream.h>  
main()
{
//输入输出字符
char c;
cin>>c;
cout < <"c=" < <c < <endl;

//输入输出整型数据
int n;
cin>>n;
cout.put(n)<<endl;


}
lovesi3344 2010-02-09
  • 打赏
  • 举报
回复
#include <iostream.h>  
main()
{
//输入输出字符
char c;
cin>>c;
cout <<"c=" <<c < <endl;

//输入输出整型数据
int n;
cin>>n;
cout < <"n=" <<(char)n < <endl;


}
歌曲长寿——为什么有些歌曲经久不衰 为什么一个轨道流了好几年,而一个更好的轨道在几周内就消失了?此数据集如下 45000首已发布的曲目——它们的音频特征、分布范围和流轨迹-- 令人不安的发现是:一首歌是如何被推送的,预示着它的寿命;它如何 听起来几乎没有。 标题:音频功能基本上无法解释一首曲目的3年流(R²≈0),而 发行——播放列表、营销、TikTok——和早期势头解释了其中的大部分。流媒体是 穿着创意服装的发行游戏。 45000条轨道·21列·3年流/慢燃烧器/命中目标 --- 为什么这个数据集 Kaggle有很多“Spotify音频功能”表,用于根据跳舞能力和 能量。他们大多发现微弱的信号,然后不说为什么。此数据集明确说明了原因: 它将音频功能与分布变量(播放列表位置、标签、营销、TikTok)配对 病毒性)和早期动量信号,因此您可以看到音频质量下降。 它再现的数字 -极度集中:前1%的轨道吸引了所有溪流的49%,前10%的溪流吸引了约84%的溪流 赢家通吃最多的现实(Luminate报告称,前1%的艺术家获得了约90%的完整流媒体 目录,其中包括约88%从未清除1000次播放的曲目)。 -半衰期短:中位轨道在其峰值的一半以上花费约50天——“大多数艺术家有两个 在歌曲褪色之前几个月才能赚钱。“只有约10%是慢燃烧器(半衰期>150天)。 -分发胜过音频:播放列表添加、编辑位置和TikTok病毒式传播都是相互关联的 ~0.3,3年流;音频特征(能量、效价、可跳舞性)相关系数约为0。 -马修效应:第一个月的流量与3年的早期动量相关约0.88 播放列表驱动了大约一半的收听,并放大了已经移动的曲目。 标题结果 预测日志3年流: |使用的功能|R²| |---|---| |仅音频(能量、效价、可跳舞性、节奏等)|≈0.00| |分发(播放列表、标签、营销、TikTok)|≈0

33,315

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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