笑脸python代码:为什么这个C代码总是输出一个笑脸

关于笑脸python代码的问题,在smiley face things中经常遇到,关于为什么这个C代码总是输出一个笑脸的编程代码示例如下。

#include <stdio.h>
#include <stdlib.h>
//A simple program that asks for the user's name and prints it back out.
int main()
{
    char name[15]; 
    printf("What is your name? ");
    scanf("%c",&name);
    printf("Name: %c",name);
}

不管输入是什么,笑脸总是输出。我意识到,如果我将 % c 更改为 % s,程序将运行得很好,但我想知道的是为什么,在所有的事情中,笑脸是输出。另外,如果第二个 % c 替换为 % s,即

char name[15]; 
printf("What is your name? ");
scanf("%c",&name);
printf("Name: %s",name);

然后在输入的第一个字符后打印一个 @ 符号。例如,如果输入是“Sam”,那么输出将是“S @”。

4

这是未定义的行为,尝试

scanf("%14s", name);

您将错误的参数传递给“% c”说明符,它需要一个指向单个char的指针。相反,您需要"%s"说明符,并且由于name是一个数组,它自动是指向它的第一个元素的指针,因此您不需要运算符的&地址。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(980)
Python排序:我怎么能“zip排序”并行numpy数组
上一篇
Quine:Python中的 Quine-McCluskey算法
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(77条)