2个问题:
第一个问题是,我需要在程序运行时输入文本文件的名称,所以让我们说它叫做“Banana.txt”,我输入它并且我错过了文件的最后一个单词。这基本上就是我用来从txt文件输出的所有内容。
while(File.good()){
cout <<word << " "; //put spaces in between the words
File >> word; }
不确定如何获得最后一句话。
第二个问题是如何将.txt文件中的信息存储到我以后可以使用的数组中? 它必须是多维的吗?文件中的最大单词是100 .. 最终我将需要忽略任何单词&lt; 4个字符。
我实际上不记得是否应该使用char或string。但是iirc char是每个字符,而字符串是字符的集合?精氨酸。抓一点,看一下......
不允许使用hash_,vector,maps,stack或list,所以我不确定如何解决这个问题
提前感谢您的帮助。我尝试通过其他线程查看,但我不确定这些是我正在寻找的...抱歉问题..
答案 0 :(得分:1)
您在输入之前输出
尝试在while
循环中交换两行,例如:
while(File.good())
{
File >> word;
cout << word << " "; //put spaces in between the words
}
将数据放入容器中,假设word
的类型为string
,请尝试:
vector<string> v;
并在你的循环底部:
v.push_back(word);
答案 1 :(得分:0)
对于第一个,您需要先读入该单词然后输出它。
&#34;直观&#34; while(File.good())
的循环虽然存在缺陷,但如果您处于文件末尾但尚未阅读,那么直到您尝试阅读下一个单词时,该流才会显示出来。
因此,读取将失败。你可以做到
while( File.good() )
{
if( File >> word )
{
// process this word
}
}
但更简单的是
while( File >> word )
{
// process the word
}
您可以使用的另一件事是istream_iterator和copy,然后您可以将它们复制到您的序列中。但是,您不能使用标准C ++库。