c - 输入长度未知

标签 c string fgets getline

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

最佳答案

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

int fgetc(FILE *stream)

打开流,一次读取一个字符,当您看到哨兵字符(可能是换行符)时停止读取。

关于c - 输入长度未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117987/

相关文章:

c - 函数参数和局部变量如何影响 C 程序的性能

c - 为什么不能使用 memcmp() 函数进行浮点类型比较?

C - scanf() 与 gets() 与 fgets()

C:使用 fread()/fgets() 而不是 fgetc() 逐行读取文本文件(具有可变长度行)( block I/O 与字符 I/O)

c - 为什么我会收到段错误 11(使用 fget 读取输入并存储在数组中)?

c - 我对执行流程感到震惊,任何人都可以帮助我吗

使用回溯的随机遍历 N * M 网格的复杂性

python:rstrip一个确切的字符串,尊重顺序

php - 如何在 Codeigniter 中将 SQL 结果字符串转换为数组?

java - 如何在不损坏数据的情况下处理字节流