c语言 将输入的内容同时存放到两个变量

请问可不可以将输入的内容同时存放到两个变量中? 比如说,我从键盘输入一个"1",然后系统就按 int 型将"1"存放到整型变量a中,同时按 char 型将 "1" 存放到字符型变量c中? 肿么实现??? 求高手!!!!!!
额。。。我现在的问题是要“同时”,因为如果我先将输入的内容按 int 型存放到整型变量a中,再强制转换为字符型存放到字符型变量c中的话,那从键盘输入的英文字母就无法获取了;但如果我先将输入的内容按char 型存放到字符型变量c中,再将字符转换成int型放到整型变量a中,那就输入不了两位数了。。。因为一个字符变量存不了两个字符啊。。。
所以,如何“同时”按不同类型对两个变量赋值啊??????

第1个回答  推荐于2018-04-11
int a;
char c;
scanf("%d",&a);//假如输入1
c=a+'0';//将1+字符0后变成字符1,存储在c中追问

这样的话,从键盘输入的英文字母不就获取不到了吗。。。

追答

比如存在char m;
执行完我写的4条语句后,再加一条如下
scanf(" %c",&m);//注意%c前面有一个空格
可以给m赋值的。

追问

空格有什么用?

追答

控制串空格用于匹配键盘缓冲区里的一个或多个空白字符(包括空格、回车、跳格等字符)。

本回答被提问者和网友采纳
第2个回答  2017-12-30
经检验应该将原答案的“c=a+'0';”改为“c=a+'\0';”。
不过也可能是因为版本原因有些不一样吧。
第3个回答  2012-03-12
你的意思是不是输出的时候既有字符'1' 又有数字1?
这样的话只能通过ASC11码转换了
字符'1'的ASC11码为 49;
所以应该这样写
#include <stdio.h>
int main()
{
int a;
char b;
scanf("%d", &a); //输入数字1
b = a+48; 将字符1存入字符变量
printf("%c", b); 打印字符1
return 0;
}
代码经过VC++6.0调试
请采纳
第4个回答  2012-03-12
先定义一个int型的变量,读入一个数,然后再定义一个char型的变量,将int型的变量赋给这个char型变量就可以了,不过要防止char变量溢出。
第5个回答  2012-03-13
程序中可以加一些条件判断语句,根据输入字符的类型区分处理。
相似回答