私のC++プログラムのコンパイルと私は(メインからこの関数を呼び出すまで動作します):"アクセス違反(セグメンテーションフォルト)がプログラムで発生しました。"
int uword(){fstream infile("numbers.txt");
fstream exfile("wordlist.txt");
string numb[numoflines];
string lines[numoflines];
number = 1;
line = 1;
for(int i=0;i<numofline;++i)
{
getline (infile,number);
numb[i] = number; //I think this is causing the problem
getline (exfile,line);
lines[i] = line; //This too
}
infile.close();
exfile.close();
string yourword;
ここで何かがデバッグにそれが育ち、「アクセス違反(セグメンテーションフォールト)をポップアップ表示、クラッシュすることを引き起こしあなたのプログラム。
編集:私の間違いは、forループで!infile.eofを使用していました。
入力ループが正しくありません。 GManは、[C++ FAQの質問への回答]で入力を適切に処理する方法について説明しました(http://stackoverflow.com/questions/4258887/semantics-of-flags-on-basic-ios/4259111# 4259111)。 –
!infile.eof()をi <= numoflines(同じことをする必要があります)に変更すると、エラーが表示されます。私はあなたがあなたの参照によって意味したものだと思います。 – Mark
あなたはi