Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ (C+;+;)如何继续读取文件的下一行,但在文件末尾停止?_C++ - Fatal编程技术网

C++ (C+;+;)如何继续读取文件的下一行,但在文件末尾停止?

C++ (C+;+;)如何继续读取文件的下一行,但在文件末尾停止?,c++,C++,我正在努力寻找一种既能将文件读到行尾的方法,例如 狗\n 猫\n 猪 并将每个的字符存储到一个数组中。虽然我可以对一行执行此操作,但我不知道如何继续下一行(即从狗到猫)并仍然注册文件的结尾。 这是到目前为止我的代码 searchFile.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); char next; while (searchFile.get(next))

我正在努力寻找一种既能将文件读到行尾的方法,例如

狗\n 猫\n 猪

并将每个的字符存储到一个数组中。虽然我可以对一行执行此操作,但我不知道如何继续下一行(即从狗到猫)并仍然注册文件的结尾。 这是到目前为止我的代码

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()
呢?这很有效!谢谢!但是,我收到了一个调试断言错误,尽管我相信这会更容易纠正。