&引用;程序中出现访问冲突(分段错误)。”; < >我的C++程序编译并工作,直到我从主()调用这个函数:< /p> int-uword(){fstream-infle(“numbers.txt”); fstream exfile(“wordlist.txt”); 麻木的字符串[numoflines]; 字符串行[numoflines]; 数字=1; 直线=1; 对于(int i=0;i
,&引用;程序中出现访问冲突(分段错误)。”; < >我的C++程序编译并工作,直到我从主()调用这个函数:< /p> int-uword(){fstream-infle(“numbers.txt”); fstream exfile(“wordlist.txt”); 麻木的字符串[numoflines]; 字符串行[numoflines]; 数字=1; 直线=1; 对于(int i=0;i,c++,dev-c++,C++,Dev C++,,getline函数的工作方式与您认为的不同 另外,在infle中可能有多行numoflines行getline函数的工作方式与您认为的不同 另外,在infle中可能会有超过numoflines的行,这不是一个直接的答案,但我相信这是一个很好的答案 使用调试器!当分段错误发生时,GDB应该在准确的行挂起,从而为您提供一个关于错误的非常好的提示。不是一个直接的答案,但我相信这是一个很好的答案 使用调试器!当分段错误发生时,GDB应该在精确行挂起,从而为您提供有关错误的非常好的提示。您的输入循环不正
getline
函数的工作方式与您认为的不同
另外,在
infle
中可能有多行numoflines
行getline
函数的工作方式与您认为的不同
另外,在
infle
中可能会有超过numoflines
的行,这不是一个直接的答案,但我相信这是一个很好的答案
使用调试器!当分段错误发生时,GDB应该在准确的行挂起,从而为您提供一个关于错误的非常好的提示。不是一个直接的答案,但我相信这是一个很好的答案
使用调试器!当分段错误发生时,GDB应该在精确行挂起,从而为您提供有关错误的非常好的提示。您的输入循环不正确。GMan很好地解释了如何在中正确处理输入。Changing!infle.eof()对我来说,你是说iYes,这就是我的意思,当我在代码中更改它时,它现在可以工作了。:)你的输入循环不正确。GMan很好地解释了如何正确处理.Changing!infle.eof()中的输入对我来说,你是说iYes,这就是我的意思,当我在代码中更改它时,它现在可以工作了。:)你能详细说明一下“getline”的正确用法吗?numoflines以前是根据文件中的行数来计算的。@Mark:请参阅
man 3 getline
。它是为与C文件*
句柄一起使用而设计的,你现在正试图在这里使用它使用fstream
。你应该使用infle>>number
来使用C++风格的ifstream
。我使用getline是因为它似乎可以达到这个目的。infle>>number只需将整个文件写入正确的数字即可。你能详细说明一下“getline”的正确用法吗?Numofline之前是通过使用多少行来计算的在文件中。@Mark:Seeman 3 getline
。它是为与Cfile*
句柄一起使用而设计的,您在这里试图将它与fstream
一起使用。您应该使用Infle>>number
来使用C++风格的ifstream
。我使用getline是因为它似乎可以用于此目的。Infle>>number可以使用st将整个文件写入数字,对吗?
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;