【问题标题】:Unknown length of input [duplicate]输入的未知长度[重复]
【发布时间】:2016-03-11 03:15:42
【问题描述】:

有几种方法可以检索字符串输入,例如 getline()fgets() 但它们都需要字符串的大小作为参数。但是如果我想检索未知大小的字符串怎么办?如何在 C 中使用 getline()fgets()

【问题讨论】:

  • getline 不是标准 C。因为fgets 标准 C,如果你不能使用它会很奇怪。你有什么问题?请阅读How to Ask
  • 正如我所说,它们都需要字符串的大小作为参数,我不知道字符串的大小

标签: c string fgets getline


【解决方案1】:

答案是否定的。您无法读取不确定长度的字符串。但是,您可以一次读取一个字符,直到达到您在程序中分配的存储空间的大小。循环使用 fgetc。

int fgetc(FILE *stream)

打开流,一次读取一个字符,当你看到你的标记字符时停止读取,这可能是一个换行符。

【讨论】:

  • 可以读取长度不定的字符串。没有内置函数可以做到这一点。
  • 好吧,你可以做任何事情,只是没有内置函数。
  • (我提出它的原因是在“您无法读取不确定长度的字符串。但是您可以一次读取一个字符,直到达到存储空间的大小你已经在你的程序中分配了。”,“其他”选项也不是内置的。)
  • 我的回答准确地描述了您所说的内容,但从技术上讲,它不是读取字符串,而是读取一系列字符项并连续保存它们。
猜你喜欢
  • 2017-03-18
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多