私はファイルから読み込み、そのファイルからすべての単語のベクトルを作成しようとしています。私が下にしようとしたのは、ユーザーにファイル名を入力させてから、コードを開いて英数字でない場合は文字をスキップしてからファイルに入力します。ファイルから読み込み、C++の句読点をスキップするとヒントが表示されますか?
今すぐファイル名を入力するとただちに閉じます。私は間違って何をすることができますか?
#include <vector>
#include <string>
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main()
{
string line; //for storing words
vector<string> words; //unspecified size vector
string whichbook;
cout << "Welcome to the book analysis program. Please input the filename of the book you would like to analyze: ";
cin >> whichbook;
cout << endl;
ifstream bookread;
//could be issue
//ofstream bookoutput("results.txt");
bookread.open(whichbook.c_str());
//assert(!bookread.fail());
if(bookread.is_open()){
while(bookread.good()){
getline(bookread, line);
cout << line;
while(isalnum(bookread)){
words.push_back(bookread);
}
}
}
cout << words[];
}
このコードはコンパイルするべきではありません: 'words'は' std :: vector 'です。したがって' words [] 'にはパラメータがありません。 ([このリンク](http://www.cplusplus.com/reference/stl/vector/operator [] /)によれば、パラメータをとらない過負荷はありません) –
ereOn
+1 to ereOn。ベクトル 'words'の各項目をループして' cout'に出力したいでしょう。 – arviman
この行 'getline(bookread、line);'が失敗するとどうなりますか?あなたは失敗を確認しません。 –