打印输入文件流缓冲区的内容

时间:2013-02-28 12:23:53

标签: c++ memory buffer

首先,如果我错误地使用了'stream'和'buffer'这个词,我想道歉。

回答这个问题 - > How to read blocks of data from a file and then read from that block into a vector?

我被告知,按文件记录或逐块读取记录不会产生太大影响,因为标准库在从文件中读取数据时已经进行了缓冲。此外,由于可以调整缓冲区的大小,因此不必逐块读取。所以,为了测试这个,我决定做一个自己的小实验。

FILE *file;
file=fopen("out","r");
setvbuf(file,NULL,_IOFBF,1024);
char c=fgetc(file);

我有一个“out”文件,有2048个字符。我通过setvbuf将1024字节的缓冲区与之关联起来。根据{{​​3}},当请求输入操作时(使用模式_IOFBF),缓冲区完全填满。所以当我要求通过

阅读一个角色时
char c=file.get()

缓冲区应该被完全填充,即它应该有文件的前半部分“out”。

现在我的问题是如何显示缓冲区的内容以便我可以验证我的实验(如果我的理解是正确的,那就是)?

感谢。

0 个答案:

没有答案