0

首先,如果我错误地使用了“流”和“缓冲”这两个词,我想道歉。

回答这个问题 - >如何从文件中读取数据块然后从该块读取到向量中?

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

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

我有一个包含 2048 个字符的文件“out”。我通过 setvbuf 关联了一个 1024 字节的缓冲区。根据http://www.cplusplus.com/reference/cstdio/setvbuf/,当请求输入操作时(使用模式_IOFBF),缓冲区被完全填满。所以当我要求通过

char c=file.get()

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

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

谢谢。

4

0 回答 0