C ++ - 从.txt文件存储到数组?

时间:2014-09-09 15:45:37

标签: c++ arrays string char

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,所以我不确定如何解决这个问题

提前感谢您的帮助。我尝试通过其他线程查看,但我不确定这些是我正在寻找的...抱歉问题..

2 个答案:

答案 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 ++库。