-2
我正在創建一個程序,該程序只讀取文本的輸入文件,並在該輸入文件中創建單詞的矢量。我現在的程序只提示用戶輸入文件名,然後停止運行。我的文本文件只有3個字用於測試,但在程序結束時,我希望能夠讀取諸如故事等大型文本文件。
我的代碼:將單詞的輸入文件轉換爲矢量 - C++
#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;
}
你試過跟蹤它嗎?你真正的問題是什麼? – JTeagle 2012-03-12 17:52:58
你的循環**方式**複雜。相反,說'std :: vector words((std :: istream_iterator(fin)),std :: istream_iterator());'並且完成它。 –
2012-03-12 17:57:04
你的代碼沒有意義。你正在讀一個單詞,然後把它扔掉,然後讀一個單詞,扔掉它,然後讀另一個單詞並以一種過度複雜的方式將它添加到一個矢量中。請考慮從[入門書]開始(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。 – Philipp 2012-03-12 20:06:48