使用scanf时给出的标准字不能正确打印

我试图 printf 一个简单的字符串,但我不能。

#include <stdio.h>

int main(){
   char *word;
   scanf("%s", &word);
   printf("%sn", word);
   return 0;
}
 

当我插入这个词时,我的代码会中断。

它只是停止程序执行,但没有给我任何错误。

我究竟做错了什么?

回答

问题1:你需要为你的单词分配空间

问题 2:您的 scanf() 语法对于字符数组不正确。

问题 3: scanf("%s", ...) 本身容易受到缓冲区溢出的影响。

建议的替代方案:

#include <stdio.h>

#define MAXLEN 80

int main(){
   char word[MAXLEN];
   fgets(word, MAXLEN, stdin);
   printf("%s", word);
   return 0;
}


以上是使用scanf时给出的标准字不能正确打印的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>