我了解到,默认情况下,程序中的I/O是缓冲的,即它们从临时存储器提供给请求程序.我知道缓冲可以提高IO性能(可能通过减少系统调用).我已经看到了禁用缓冲的示例,例如setvbuf在C中.两种模式之间有什么区别?何时应该使用另一种模式?
我需要编写一个程序来生成 N 个随机数并按降序将它们写入二进制文件。它应该在不使用任何使用主内存的排序算法的情况下完成。这是我到目前为止所做的:
#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main () {
srand(time(0));
rand();
int N;
do{
cout << "Unesite N: ";
cin >> N;
} while(N<=0);
ofstream br("broj.dat", ios::binary | ios::trunc);
for(int i = 0; i<N; i++){
int a = rand();
br.write((char *)&a, sizeof(a));
}
br.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以,我生成了随机数并将它们写入二进制文件,但我不知道如何对其进行排序。