Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Создание файла и запись в него случайных символов

#cpp #linux #c


Пытаюсь создать текстовый файл, и с помощью генератора случайных букв(+пробел, для
того, чтобы получались "слова" разной длины) записывать в этот файл набор этих самых
букв. По отдельности если делаю, то файл создается, буквы генерируются, а вместе это
не получается сделать.
Можете объяснить почему и наставить на путь истинный)

#include 
#include 
#include 
int main ()
{
    FILE * pFile;
    int val = 15*1024*1024;
    int i;
    srand(time(NULL));
    unsigned char mass;
    for(i=0;i<30;++i)
        mass=(rand() % ('z'-'a'+1))+'a';
    pFile = fopen ( "myf.txt" , "w" );
    fwrite (mass , 1 , sizeof(val) , pFile );
    fclose (pFile);
}


И еще такой вопрос: Как все-таки можно заполнить файл случайными буквами с пробелом
(чтобы получались "слова") на 10МБ?
    


Ответы

Ответ 1



Итак, for(i=0;i<30;++i) mass=(rand() % ('z'-'a'+1))+'a'; 30 раз переприсваиваем значение одной и той же переменной (кстати, пробелом тут и не пахнет). Затем пишем в файл 4 байта (размер int)? находящиеся по адресу, который хранится в переменной mass: fwrite (mass , 1 , sizeof(val) , pFile ); Кстати, эта строка в C++ не компилируется, так что... Наверное. вы хотели что-то вроде этого? #include #include #include int main () { FILE * pFile; pFile = fopen ( "myf.txt" , "w" ); int val = 15*1024*1024; int i; srand(time(NULL)); char mass; for(i=0; i

Ответ 2



Галочка успела появиться.. ну да ладно, зря что ли писал, вдруг тоже пригодится. #include #include int main() { //Задаём диапазон количества символов в одном слове и количество символов в файле const int minWordLength = 2, maxWordLength = 30, maxSymbolInFile = 10*1024*1024; std::ofstream fout("out.txt"); srand(time(nullptr)); //определяем длину первого слова int currentWordLength = minWordLength + rand() % (maxWordLength - minWordLength); int symbolsInFile = 0; while (symbolsInFile

Комментариев нет:

Отправить комментарий