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);