C++ (C+;+;)如何继续读取文件的下一行,但在文件末尾停止?
我正在努力寻找一种既能将文件读到行尾的方法,例如 狗\n 猫\n 猪 并将每个的字符存储到一个数组中。虽然我可以对一行执行此操作,但我不知道如何继续下一行(即从狗到猫)并仍然注册文件的结尾。 这是到目前为止我的代码C++ (C+;+;)如何继续读取文件的下一行,但在文件末尾停止?,c++,C++,我正在努力寻找一种既能将文件读到行尾的方法,例如 狗\n 猫\n 猪 并将每个的字符存储到一个数组中。虽然我可以对一行执行此操作,但我不知道如何继续下一行(即从狗到猫)并仍然注册文件的结尾。 这是到目前为止我的代码 searchFile.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); char next; while (searchFile.get(next))
searchFile.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
char next;
while (searchFile.get(next))
{
if (next == '\n') // If the file has been opened in
{
for (int i = 0; i <= searchTempSize; i++) // ... For each character within the total length of the string ...
{
searchCharArray[i] = searchArray[i];
cout << searchCharArray[i] << endl;
}
}
}
searchFile.ignore(std::numeric_limits::max(),'\n');
下一步;
while(searchFile.get(下一步))
{
if(next=='\n')//如果文件已在中打开
{
对于(int i=0;i来说,传统的方法是使用。这将返回对流的引用;当转换为布尔值时,这将指示流上的最后一个操作是否成功,例如,非文件结尾。因此,要将所有行加载到字符串数组中,例如,您可以执行以下操作:
std::string line;
std::vector<string> lines;
while (std::getline(searchFile, line)) {
lines.push_back(line);
}
std::字符串行;
std::矢量线;
while(std::getline(searchFile,line)){
线。推回(线);
}
我不明白你想做什么。关于std::getline()
呢?这很有效!谢谢!但是,我收到了一个调试断言错误,尽管我相信这会更容易纠正。