多行输入从 C 中的 stdin 读取输入
大家好,我想问一下,c 编程中有一种方法可以从 stdin 读取多行输入,
因为我不能使用 scanf() 也不能使用 fgets,因为它需要输入直到 /n
以及如何停止输入,例如一些分隔符
也非常感谢
我也没有使用 c++
Hello every one I want to ask that is there a way in c programming through which I can read multi line input from stdin
as I cant use scanf() also not fgets as it take input till /n
and also how to stop the input like some delimiter
thanks alot
also I am not using c++
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
fread
。例如,从链接复制
Use
fread
.eg, copied from the link
我建议您使用 getc 一次读取一个字符,查找所需的任何分隔符,并将非分隔符附加到您手动控制大小的缓冲区(使用 realloc)代码>)。另一种方法是使用
fread
读取大块并扫描分隔符,但getc
方法可能更容易、更简单。确保查找
EOF
以及显式分隔符。I recommend you read input one character at a time with
getc
, look for whatever delimiter you want, and append the non-delimiter characters to a buffer whose size you control manually (withrealloc
). The alternative is to read large blocks withfread
and scan for the delimiters, but thegetc
approach is likely to be easier and simpler.Make sure to look for
EOF
as well as your explicit delimiters.如果 C 中有适当的字符串数据类型,并且具有自动内存管理功能,那么这个任务将非常简单。这个想法是:
您只需编写适当的函数来处理字符串。
This task would be pretty simple if there were a proper string datatype in C, with automatic memory management. The idea is:
You just have to write the proper functions for the string handling.