c -编译器忽略后续命令

  • 本文关键字:命令 编译器 c pointers
  • 更新时间 :
  • 英文 :


我有以下C代码:

#include <stdio.h>
int main()
{
char* ptr;
printf("Enter the word: ");
gets(ptr);
printf("The input string is: ");
puts(ptr);
return 0;
}

它编译并请求输入,但在我输入输入后,它暂停并退出。不再执行或显示其他命令。我无法理解这个问题。请帮助。

#include <stdio.h>
int main()
{
char str[100] = "";
printf("Enter the word: ");
fgets(str, sizeof str, stdin);
printf("The input string is: ");
printf("%s", str);
return 0;
}

尝试使用fgets()gets()的使用是危险的,因为gets()本身是不安全的,因为它复制了所有来自STDIN的输入到缓冲区,不检查大小。这允许用户提供一个大于缓冲区大小的字符串,从而导致溢出条件。

putsprintf简单,但要注意前者会自动附加一个换行符。如果这不是您想要的,您可以将字符串fputs设置为stdout或使用printf

最新更新