【发布时间】:2019-08-02 18:32:51
【问题描述】:
我正在尝试学习 C,我正在制作一个非常简单的程序,它会询问你的名字然后显示它。
#include<stdio.h>
main()
{
char name[30];
printf("\n\tWhat is your name?:");
scanf("%c",&name);
printf("\n\tHi,%c.n\n",name);
}
在我编译它并尝试输入一个名称后,它只会给出一个随机字母作为printf 的输出。
【问题讨论】:
-
"%c"是字符的格式说明符。使用"%s"。 -
您在编译代码时是否收到警告消息?它们出于某种原因在那里......不要忽视它们。
-
成功了,谢谢。我以为“%s”是用于“字符串”的,所以我没有尝试。编译时它没有给出任何警告。
-
如果你没有从你的编译器中得到任何警告,你需要知道如何让它给你有用的(必要的)警告——或者得到一个更好的编译器。例如,使用 GCC(来自 GNU Compiler Collection 的 GNU C 编译器),您应该使用
gcc -Wall -Wextra -Werror -std=c11 -O3 -g …或类似的位置进行编译,并且由于-Werror,您将无法运行代码,直到它编译时没有警告。 -
是的,“%s”用于字符串,即字符序列。这就是名字。