#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
Комментариев нет:
Отправить комментарий