无论类型编号如何,变量INT类型接收0

时间:2014-11-09 13:24:13

标签: c

我是新来的,有点新的编程(特别是C),我面临变量的问题。变量VAL1从第一个SCANF()接收其值,但在第二组PRINTF()/ SCANF()之后,无论我做什么,该值都变为0。

我做错了什么?请记住,我对C的了解非常肤浅。此代码是另一个更大代码的摘录。

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

int vagastot;

int main()
{
    int val1;
    char ch3;

    printf("\n  Type new value : ");
    scanf("%d", &val1);

    printf("\n  Confirm? (Y|N) : ");
    scanf("%s", &ch3);

    if(ch3=='Y' || ch3=='y')
    {
        vagastot = val1;
    }

    system("PAUSE");
    return 0;
}

1 个答案:

答案 0 :(得分:0)

第二个scanf()中的格式说明符不正确,会产生undefined behaviour。由于您正在阅读单个char,因此格式说明符应为"%c"而不是"%s"