c - 如何在 C 中不使用 gets() 获取包含空格的字符串?

标签 c string gcc scanf gets

当使用 scanf() 获取包含空格的字符串时,它仅分配空格之前给出的输入。就像我将“hello world”作为输入一样。只有“hello”被存储在变量中。我知道 scanf() 很自然。当我使用 gets() 时,它工作正常。但 gcc 报告说 gets() 已被弃用。它还会发出警告,指出 gets() 是危险的,不应使用。那么没有 gets() 如何获取带空格的字符串呢?还有其他替代功能吗?

最佳答案

您可以使用char *fgets(char *str, int n, FILE *stream)

要从用户那里获取输入,而不是 FILE* 流,请使用标准输入 stdin

fgets (str, 60, stdin)

关于c - 如何在 C 中不使用 gets() 获取包含空格的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33320567/

相关文章:

c - 在 C 中使用 scanf 检测新行

c++ - 不支持在 c 或 c++ 中添加两个指针。为什么?

c - wireshark 如何解释字节顺序?

objective-c - Objective C 中使用正则表达式和 nsarray 进行字符串操作以及可变字符串

javascript - 如何找到特定的模式?

c - 两次调用 mmap 时出现 SIGSEGV

c - 在 C 程序中使用 SQLite3 - 简单的设置问题

c++ - 为什么 gcc 编译器将 pow(10,2) 输出为 99 而不是 100?

python - 检测停止进程Python

iphone - 将字符串转换为NSDate