【发布时间】:2015-03-31 07:13:47
【问题描述】:
目标:
我正在逐字阅读文本文件,并将每个单词保存为数组中的一个元素。然后我逐字打印出这个数组。我知道这可以更有效地完成,但这是为了分配,我必须使用数组。
我正在对数组进行更多操作,例如计算重复元素、删除某些元素等。我还成功地将文件转换为完全小写且没有标点符号。
现状:
我有一个如下所示的文本文件:
beginning of file
more lines with some bizzare spacing
some lines next to each other
while
others are farther apart
eof
这是我的一些代码,其中 itemsInArray 初始化为 0 和一个称为 wordArray[ (approriate length for my file ) ] 的单词数组:
ifstream infile;
infile.open(fileExample);
while (!infile.eof()) {
string temp;
getline(infile,temp,' '); // Successfully reads words seperated by a single space
if ((temp != "") && (temp != '\n') && (temp != " ") && (temp != "\n") && (temp != "\0") {
wordArray[itemsInArray] = temp;
itemsInArray++;
}
问题:
我的代码将行尾字符保存为我的数组中的一个项目。在我的 if 语句中,我列出了我尝试排除行尾字符的所有方法,但我没有运气。
如何防止行尾字符保存为我的数组中的项目?
我已经尝试了一些在与此类似的线程上发现的其他方法,包括我无法工作的带有*const char 的方法,以及迭代和删除换行符。我已经为此工作了几个小时,我不想重新发布相同的问题,并且尝试了很多方法。
【问题讨论】:
-
此时,我的 .txt 文件包含一整本书,没有大写字母。有几个“返回”或新行来分隔章节。我已经绕过将额外的空格保存为我的数组中的项目,我只是在努力 not 保存换行符。再次感谢您。
标签: c++ arrays getline end-of-line