我遇到了一个字符变量的问题(C编程新手)

qvk1mo1f  于 2023-03-07  发布在  其他
关注(0)|答案(1)|浏览(268)

我一直在终端上收到一个bug,它说:

warning: format specifies type 'char *' but the argument has type 'int' [-Wformat]
    scanf("%c", namehumaninput);
           ~~   ^~~~~~~~~~~~~~

我正在学习的课程是说我所需要做的就是有一个char变量,这就是它,使用它没有别的,但显然有什么是错误的。以下是我遇到麻烦的代码:

//Lesson 9
    int inputage;
    double gpainput;
    char namehumaninput;
    printf("Wat ur age?\n");
    scanf("%d", &inputage); // scanf(); is how you do an input. You MUST have & behind a variable after a %d!!
    printf("You are %d years old\n", inputage);
    printf("Was yo GPA?\n");
    scanf("%lf", &gpainput); // %lf is for double variables when using scanf() but using printf() it uses %s for variables. Confusing, I know.
    printf("Your GPA is %f\n", gpainput);
    printf("Wos yo name now that ive asked yo fo yo gpa and age\n");
    scanf("%c", namehumaninput); // %c is universal for both
    printf("Really? Yo name is %c?\n", namehumaninput);

我已经导入了stdiostdlib库,并且正在使用MacOS。

icnyk63a

icnyk63a1#

这通电话

scanf("%c", namehumaninput);

你至少要重写

scanf(" %c", &namehumaninput);

格式字符串中的前导空格允许跳过输入流中白色字符,您需要提供一个字符指针作为第二个参数表达式。
但是,此调用只允许输入单个字符。
如果你想输入一个单词,那么你应该写例如

char namehumaninput[20];
//...

scanf("%19s", namehumaninput);
printf("Really? Yo name is %s?\n", namehumaninput);

相关问题