c语言中字符变量的问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 06:56:30
#include<stdio.h>
int
main(void){
int x;
char m;
printf("请输入一个字符型数据:");
scanf("%c",&m);

printf("请输入一个整数:");
scanf("%d",&x);

printf("整数是%d\n",x);
printf("字符是%c\n",m);

}
这个格式提示是先输进一个整数,再输进一个字符
当我想先输进一个字符时,代码变成
#include<stdio.h>
int
main(void){
int x;
char m;

printf("请输入一个整数:");
scanf("%d",&x);
printf("请输入一个字符型数据:");
scanf("%c",&m);

printf("整数是%d\n",x);
printf("字符是%c\n",m);

}
我知道这样达不到先输进字符再输进整数的目的,那么应该怎样修改一下以达到目的呢?
二楼,好像你这样做,我还不如像开始那个程序那样,直接先输入字符再输入整型数据。

#include<stdio.h>
int
main(void){
int x;
char m;
int i;
printf("请输入一个字符型数据:");
for(i=1;i<2;i++)
{
scanf("%c",&m);
}

printf("请输入一个整数:");
scanf("%d",&x);
printf("字符是%c\n",m);
printf("整数是%d\n",x);
}
加一个for 循环就好了

那你想达到什么样的效果?????

先都按字符输入
然后用atoi()函数转换成整型

每个输入语句后面 加入 fflush(stdin); 就可以了. 先数或先字都没问题了。

#include <stdio.h>
#include <stdlib.h>

void main(){
int x;
char m;

printf("Enter a int:\n");
scanf("%d",&x);
fflush(stdin);
printf("Enter a char\n");
scanf("%c",&m);
fflush(stdin);
printf("int is: %d\n",x);
printf("char is: %c\n\n",m);

printf("Enter a char\n");
scanf("%c",&m);