从文件逐字读取并确定换行 C++

Posted

技术标签:

【中文标题】从文件逐字读取并确定换行 C++【英文标题】:Read From File Word For Word and Determining New Lines C++ 【发布时间】:2014-10-13 02:25:19 【问题描述】:

我有一个项目,我应该从文本文件中读取单词并将它们按字母顺序存储在二叉搜索树中。我正在将单词读成一个字符串,所以我想你可以说我是一个字符串一个字符串。我不想逐个字符地读取字符,或者使用 getline 一次获取整行。我只想逐字逐句。我应该能够存储每个单词出现在哪一行,但我无法弄清楚如何逐字阅读,也无法弄清楚每个新行的开始位置。希望有人能帮忙!

【问题讨论】:

尝试std::stringstream逐字阅读并从那里开始工作。 【参考方案1】:

我不想逐个字符地读取字符,或者使用 getline 一次获取一整行。

无论如何我可以推荐...使用getline()!这使您的算法的行号更加简单,并且不禁止您使用 std::string,就可以使用std::stringstream 提取每个单词,通过在每次调用getline() 时使用递增整数提前知道行号是什么。记得在每次提取后检查流以确保它有更多数据。

如果我有代表,我会发表评论。到目前为止,您尝试过什么?

【讨论】:

【参考方案2】:

阅读单词会跳过前导空格,换行符被视为空格。你需要改变你的方法。

您可以编写自己的函数来跳过前导空格并在阅读每个单词之前调用它。只需让它返回它找到的换行符的数量,这样你就可以增加行号。

【讨论】:

以上是关于从文件逐字读取并确定换行 C++的主要内容,如果未能解决你的问题,请参考以下文章

如何从文件中逐字读取?

在 C++ 中按字符读取输入文件时的换行符

逐字符而不是逐字读取文本文件?

读取换行符分隔文件并丢弃换行符的最佳方法?

如何逐字处理从 SQL 读取的字符串?

一行一行读取文件没有换行符golang