如果On不存在,C ++在文件末尾添加新行?

时间:2012-03-31 02:49:08

标签: c++ parsing file-io formatting newline

我正在用C ++编写一个程序,用于打开,解析和格式化文本文件。我想知道是否有办法可以打开文本文件,查看文件末尾是否有新行,如果不存在则添加一行。

我是C ++的新手,我不知道如何解决这个问题。有人可以提供演示吗?

感谢您的时间!

2 个答案:

答案 0 :(得分:3)

  1. fopen()文件

  2. fseek()to filesize - 1

  3. 如果字符不是“\ n”,则附加一个

答案 1 :(得分:1)

以paulsm4的答案为基础:

//Open file in append-binary mode.
FILE *hFile = fopen("C:\\Test.txt", "ab");
if(hFile == NULL)
{
    printf("File not found.\n");
    return 0;
}

//Seek one character from the end of the file.
fseek(hFile, -1, SEEK_END);

//Read in a single character;
char cLastChar = fgetc(hFile);

if(cLastChar != '\n')
{
    //Write the line-feed.
    fwrite("\n", sizeof(char), 1, hFile);
}

//Close the file handle.
fclose(hFile);