C++ 打印输入文件流缓冲区的内容
首先,如果我用错了“stream”和“buffer”,我想道歉 回答这个问题-> 有人告诉我,从文件中逐个记录或逐块读取数据不会有太大效果,因为标准库在从文件读取数据时已经进行了缓冲。此外,由于可以调整缓冲区的大小,因此无需逐块读取。所以,为了验证这一点,我决定自己做一个小实验C++ 打印输入文件流缓冲区的内容,c++,memory,buffer,C++,Memory,Buffer,首先,如果我用错了“stream”和“buffer”,我想道歉 回答这个问题-> 有人告诉我,从文件中逐个记录或逐块读取数据不会有太大效果,因为标准库在从文件读取数据时已经进行了缓冲。此外,由于可以调整缓冲区的大小,因此无需逐块读取。所以,为了验证这一点,我决定自己做一个小实验 FILE *file; file=fopen("out","r"); setvbuf(file,NULL,_IOFBF,1024); char c=fgetc(file); 我有一个文件“out”,有2048个字符。我
FILE *file;
file=fopen("out","r");
setvbuf(file,NULL,_IOFBF,1024);
char c=fgetc(file);
我有一个文件“out”,有2048个字符。我通过setvbuf将1024字节的缓冲区与之关联。根据,当请求输入操作时(使用模式_IOFBF),缓冲区被完全填满。所以当我要求通过
char c=file.get()
缓冲区应该完全填满,即它应该有文件的前半部分“out”
现在我的问题是如何显示缓冲区的内容,以便验证我的实验(如果我的理解是正确的,那就是)
谢谢。
<代码> StvBuf调用将不能与C++文件流一起工作,这应该会给编译器带来错误。用于旧的C stdio文件
文件。检查C++中使用的缓冲类。是的,我刚发布这个问题后就意识到了。我会做必要的改变。