[英]How to take this kind of a STDIN inputs in c++?
在许多黑客马拉松中,他们提供了测试用例。 因此,在这些测试用例中,它们通过 STDIN 以不同的方式提供输入。 这是我完全挣扎的情况之一。
这是一种输入:(这是一个测试用例)
Mike
John
Ahmed
Sangha
Daniel
Ann
所以这里我有6个输入。 但他们不提供输入的数量。 所以我不能使用for loop
或while 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.