Форум программистов, компьютерный форум CyberForum.ru

Как создать файл? - C++

Войти
Регистрация
Восстановить пароль
 
RazerVG
1 / 1 / 0
Регистрация: 22.03.2012
Сообщений: 60
07.12.2012, 13:10     Как создать файл? #1
Как создать фаил. В котором 50000000 элементов и все они типа short. Ниже прога выдает ошибку

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
       #include <ctime>
#include <fstream>
#include <stdio.h>
using namespace std;
int main()
{
   int i;
   ofstream f("chisla.txt");
   
   srand(time(NULL));
   for(i = 0; i < 50000000; i++)
    f <<" "<< unsigned short rand();
 
   return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
07.12.2012, 13:20     Как создать файл? #2
во-первых,
C++
1
 (unsigned short) rand();
Во-вторых, что значит "в нём все элементы типа short", ты текстовый файл создаёшь.
RazerVG
1 / 1 / 0
Регистрация: 22.03.2012
Сообщений: 60
07.12.2012, 13:27  [ТС]     Как создать файл? #3
Нет, я создаю фаил с числами . 1 2 3 итд. Мне нужно чтобы в фаил ввелось 50000000 значений но не больше 65536(тип short)
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
07.12.2012, 13:34     Как создать файл? #4
1) ты всё равно создаёшь файл с текстом не пойму, при чём тут тип unsigned short
2) не знаю как в разных средах, а у меня RAND_MAX равен 32767
значения действительно не будут больше 65536, но, если хочешь использовать диапазон по полной, надо записывать большие числа, например
C++
1
 unsigned short data=rand()+rand();
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.12.2012, 13:36     Как создать файл? #5
RazerVG, short может быть и больше 2 байт. Да и есть std::to_string
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
07.12.2012, 13:41     Как создать файл? #6
И ещё. Я тут советовал для увеличения диапазона rand() использовать
C++
1
 unsigned short data=rand()+rand();
тут стоит отметить, что числа, полученные таким образом, уже не будут равномерно распределены по всему диапазону!!! Распределение будет треугольным. Если это принципиально, тупо суммировать rand() нельзя
RazerVG
1 / 1 / 0
Регистрация: 22.03.2012
Сообщений: 60
07.12.2012, 13:41  [ТС]     Как создать файл? #7
Kuzia domovenok,
В Visual Studio он равен 65536
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2012, 16:54     Как создать файл?
Еще ссылки по теме:

C++ Как создать файл в VS
C++ Как создать проверяющий файл?
Подскажите, нужно перегрузить оператор или создать метод(если создать то не понимаю как) записи в файл C++
C++ Как создать EXE файл?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5791 / 3166 / 359
Регистрация: 29.11.2010
Сообщений: 8,469
07.12.2012, 16:54     Как создать файл? #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <fstream>
#include <random>
 
 
int main()
{
    std::ofstream o("result.txt");
    std::mt19937 gen{std::random_device()()};
    std::uniform_int_distribution<unsigned short> uid(0, 65535);
    for (long i=0; i < 50000000; i++)
        o << uid(gen) << " ";
}
Yandex
Объявления
07.12.2012, 16:54     Как создать файл?
Ответ Создать тему
Опции темы

Текущее время: 01:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru