我正在用C ++编写一个程序,用于打开,解析和格式化文本文件。我想知道是否有办法可以打开文本文件,查看文件末尾是否有新行,如果不存在则添加一行。
我是C ++的新手,我不知道如何解决这个问题。有人可以提供演示吗?
感谢您的时间!
答案 0 :(得分:3)
fopen()文件
fseek()to filesize - 1
如果字符不是“\ 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);