我刚刚开始学习如何用C语言编写uni。我正在尝试从char数组中升级,并尝试将字符串存储在char指针中,但是由于某种原因,终端给了我一个奇怪的错误。
我正在使用CLion和Ubuntu终端。当我运行命令make main
时,它将在目录中创建一个make
,但返回警告:
main.c:6:19: warning: format ‘%s’ expects a matching ‘char *’ argument
[-Wformat=]
scanf("%[^\n]%s", s);
~^
这是我的代码:
#include<stdio.h>
int main(void)
{
char *s;
scanf("%[^\n]%s", s);
printf("Hello World! %s\n", s);
}
然后,当我运行./main
时,程序将输出:Hello World! (null)
。我实际上是将char *传递给scanf,所以我真的不知道是什么导致了此错误。事实上,当我尝试将%s
替换为%*c
时,make
告诉我*c
期望有int
!老实说,我对他的整个事情很困惑,所以任何帮助都将不胜感激。