Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 打印输入文件流缓冲区的内容_C++_Memory_Buffer - Fatal编程技术网

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

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个字符。我

首先,如果我用错了“stream”和“buffer”,我想道歉

回答这个问题->

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

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++中使用的缓冲类。是的,我刚发布这个问题后就意识到了。我会做必要的改变。