Tag: ifstream

无法理解C和C ++中缓冲区大小的实验结果。 ifstream还比FILE慢吗?

这一切都始于这个问题 – > 如何从文件中读取数据块,然后从该块读取到矢量? 为了最大限度地减少磁盘I / O操作,我进行了一些实验,看看缓冲区的大小是否会对程序所用的时间产生任何影响。 我使用了以下两个代码,一个是面向c的,另一个是c ++(虽然都是用gcc编译的): – 面向c的代码: – int buffer_size=1024; FILE *file; file = fopen(argv[1], “r”); FILE *out_file; out_file = fopen(“in”, “w”); char out_buffer[2048]; setvbuf(out_file, out_buffer, _IOFBF, buffer_size); char buffer[2048]; setvbuf(file, buffer, _IOFBF, buffer_size); while (!feof(file)) { char sl[1000]; fgets(sl, 140 , file); fputs(sl, out_file); } c代码给出了以下结果(对于14 MB的文件): – Buffer_size Time […]