Мне нужно создать текстовый файл определенного размера, пользователь вводит размер. Все, что мне нужно знать, - это сделать файл быстрее. В настоящее время создание файла размером 10 МБ занимает около 15 секунд. Я должен уменьшить это до 5 секунд. Как я могу это сделать? В настоящее время это, как я делаю мой файлКак создать текстовый файл определенного размера C++
void create_file()
{
int size;
cout<<"Enter size of File in MB's : ";
cin>>file_size;
size = 1024*1024*file_size; // 1MB = 1024 * 1024 bytes
ofstream pFILE("my_file.txt", ios::out);
for(int i=0; i<size; i++) //outputting spces to create file
pFILE<<' ';
pFILE.close();
}
Update, это то, что я использую в настоящее время, но я получаю значение мусора записывается в файл, а,
void f_c()
{
int i, size;
cin>>size;
FILE * new_file = fopen("FILE TEST.txt", "w");
char buffer[1024];
memset(buffer,' ', 1024);
for(i = 0; i<1024 * size; i++)
fputs(buffer, new_file);
getchar();
}
Это довольно неэффективно. – Domi
Я предположил, что искатель хочет, чтобы файл сначала заполнялся пробелами, а не просто создавал файл. Обновлен ответ, чтобы уточнить это. – fpw
Я видел дубликат вопроса, однако, когда я использую эти методы, используя буфер размером 1024 и используя fputs для записи его в файл, файлы создаются быстрее, но я также получаю эту тупую строку, написанную в файле «Íýýýý« « «« «« «« «» »Вместе с пробелами. Как мне удалить это? – chaudrhy