我找到了一段代码,它给出了一个文本文件的大小:
ifstream file("xmlfile.xml",ios::in);
//get size
file.seekg (0, ios::end);
int length = file.tellg();
file.seekg (0, ios::beg);
// allocate memory:
char* buffer = new char [length];
// read data as a block:
file.read (buffer,length);
file.close();
buffer[length-1] = '\0';
printf("%s",buffer);
问题是,我想阅读一个小的 xml 文件,可以完美地阅读它,但最后会留下许多“=”符号,因为我发现它们等于文件中 CR 的数量。将 EOL 切换到 Unix 解决了问题,但为什么在 Windows EOL 中打印会出现问题?
示例 xml:
<?xml version="1.0"?>
<catalog>
(EOL)
以及 printf 打印的内容:
<?xml version="1.0"?>
<catalog>
══════