Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.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++_File_Io - Fatal编程技术网

C++ 忽略文件末尾的空格

C++ 忽略文件末尾的空格,c++,file,io,C++,File,Io,有没有办法在文件末尾添加一行,即使文件末尾有空行?下面是一个示例代码: void add(fstream &inputfile, int x, int y) { inputfile.clear(); inputfile.seekg(0, ios::end); while(??) //while last line is blank space inpu

有没有办法在文件末尾添加一行,即使文件末尾有空行?下面是一个示例代码:

 void add(fstream &inputfile, int x, int y)
    {
        inputfile.clear();
        inputfile.seekg(0, ios::end);
        while(??)                             //while last line is blank space
            inputfile.seekg(-1, ios::end);    //go back one line
        inputfile << x << "\t" << y << endl;  //when while's finished add the new one
        inputfile.seekp(0);
    }

有可能这样做吗?while循环中应该放什么?即使没有任何空格,代码也应该正常工作,因此我们必须使用while语句,而不是简单的if语句。如果不能这样做,你还有其他建议吗

在文件结束前转到。然后使用一个可以窥视下一个字符的循环(读取它而不前进)。如果是换行符,则返回一个字符并重复循环。当到达最后一个非换行符时,向前搜索2个字节,跳过该字符和换行符

inputfile.seekg(-1, ios::end);
while(inputfile.peek() == '\n') {
    inputfile.seekg(-1, ios::cur);
}
inputfile.seekg(2, ios::cur);
inputfile.seekg(-1, ios::end);
while(inputfile.peek() == '\n') {
    inputfile.seekg(-1, ios::cur);
}
inputfile.seekg(2, ios::cur);