为什么我的程序会在c中打印出一个字符?

时间:2015-01-31 06:04:39

标签: c

为什么我的程序不会在c中打印出一个字符?我似乎无法在此找到任何错误。以下是我的程序片段。当我尝试打印firstBand角色时,我得到的一切都没有。

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



/*
 * 
 */

int bandOne;
int bandTwo;
double multiplierValue;
double resistanceValue;
double toleranceValue;
char firstBand;
char secondBand;
char multiplier;
char tolerance;

int main(void) {
    //prompt user for band colours
    printf("Colour of first band?\n");
    firstBand = scanf(" %c",&firstBand);
    printf("Colour of second band?\n");
    secondBand = scanf(" %c",&secondBand);
    printf("What is multiplier?\n");
    multiplier = scanf(" %c",&multiplier);
    printf("What is the tolerance?\n");
    tolerance = scanf(" %c",&tolerance);

    printf("%c\n",firstBand);

....
..
..

return 0;

}

请帮忙。

2 个答案:

答案 0 :(得分:1)

firstBand = scanf(" %c",&firstBand);

firstband是一个字符读取,scanf()返回成功读取的元素数。

所以firstBand不再是你扫描的字符,它实际上是读取的元素数量的值。

if(scanf(" %c",&firstBand) == 1)
printf("%c",firstBand);

答案 1 :(得分:0)

更改所有scanf语句
firstBand = scanf(" %c",&firstBand);

scanf(" %c",&firstBand);

那应该解决它。