【发布时间】:2015-04-11 10:26:31
【问题描述】:
我正在尝试使用 C 语言从标准输入读取未知长度的行。
我在网上看到这个:
char** str;
gets(&str);
但这似乎给我带来了一些问题,我真的不明白怎么可能这样做。
你能解释一下为什么这个例子有效/无效 以及实现它的正确方法是什么(使用malloc?)
【问题讨论】:
-
系统函数 'gets()' 有很多问题,包括超出可用输入缓冲区的可能性。建议使用 fgets(),它允许在输入字符串上设置最大长度。
-
建议使用 getline() 函数。如果您的系统上还没有该功能,可以从互联网上下载源代码。
标签: c