将单词的输入文件转换为向量 - C ++

时间:2012-03-12 17:51:01

标签: c++ string input vector fstream

我正在创建一个只读取文本输入文件的程序,并在该输入文件中创建单词的向量。我现在的程序只提示用户输入文件名,然后停止运行。我的文本文件中只有3个单词用于测试,但是在程序结束时我希望能够读取大型文本文件,例如故事。
我的代码:

#include<string>
#include<iostream>
#include<vector>
#include<fstream> 


using namespace std;


int main(){

 string filename;  //name of text file
 string wordsFromFile;  //the words gathered from the text file

 cout << "Please enter the name of your text file" << endl;
 cin >> filename;

 ifstream fin(filename.c_str());

 fin >> wordsFromFile;

 while(fin >> wordsFromFile)
 {
   fin >> wordsFromFile;
   vector<string>word;
   for(int i=0; i<=word.size(); i++) {
      word.push_back(wordsFromFile);
      cout << word[i];}
   }

   fin.close();
   return 0; 
}

1 个答案:

答案 0 :(得分:0)

关于你的实际问题

  

我现在的程序只提示用户输入文件名,然后停止运行。

由于您没有检查文件是否存在,因此无法帮助您了解发生的情况。该文件可能不在正确的文件夹中吗?您似乎没有在文件名之前使用任何路径,可能是因为您在提示符上给出完整路径?

  

我有一本入门书。我想在这个程序中尝试做的范围不在本书中,但

通常很少能找到一本关于你在做什么的书。但是,如果你想了解更多关于C ++的信息,我会推荐C ++ Primer Plus,这是一本非常好的书。


关于你循环,我建议你在每行的行上填写你的列表,特别是如果你打算加载故事(例如,一个故事的几个megs)。