繁体   English   中英

如何在 c++ 中采用这种 STDIN 输入?

[英]How to take this kind of a STDIN inputs in c++?

在许多黑客马拉松中,他们提供了测试用例。 因此,在这些测试用例中,它们通过 STDIN 以不同的方式提供输入。 这是我完全挣扎的情况之一。

这是一种输入:(这是一个测试用例)

Mike
John
Ahmed
Sangha
Daniel
Ann

所以这里我有6个输入。 但他们不提供输入的数量。 所以我不能使用for loopwhile loop来获取这个输入。 因为我不知道我应该做多少次迭代。 所以我必须接受输入直到结束。 但这不是来自文件的输入。 所以我也不能使用EOF 此输入来自 STDIN。 那么我怎样才能接受这种输入并将其存储在一个数组中呢? 另外我不知道应该在数组中创建多少元素。 因为我不知道有多少输入。 (不同的测试用例可能包含不同数量的输入)。 我该如何解决这种问题?

非常感谢你的帮助!

您应该能够使用 EOF,因为 stdin一个文件(至少在 linux 上)

此处的输入清楚地显示了显示了多少条目。 请注意,每个条目都在换行符上,因此,将其视为分隔符,您可以解析输入 stream 并分离条目并获取条目数。

C++ getline() 正是这样做的:

istream& getline(istream& is, string& str, char delim );

getline 的最后一个参数是可选的,因为它使用 '\n' 作为默认值。

如果您想以原始方式执行此操作,您可以设置一个文件指针并对 '\n' 进行前瞻,并将其之前的所有内容读入变量数组(向量)的新项目...重复执行此操作,直到您到达 EOF流(或文件流)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM