ОБСУЖДЕНИЕ

Робота с генератором случайных чисел

10 ответов 8 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Есть кусок кода:

mas=rand()%100-50;
ass= (char) mas;
cout << ass << "\n”;

После выполнения выводит белиберду, а в текстовый файл (он дальше по коду) нечего не пишется. :) А как зделоть так что – б на экран цифры вывались, и в файл цифры записались.
Заранее спасибо.
 
Напишите на листочке возможные результаты работы кода и поймете, что белиберда это нормальный результат
 
но мне нужны числа, а он мне дал символы, смайлики, пики, кресты. бубы. А когда я отправляю ето всё в файл ( fputs( ass, file); ) он мне сообщает об ошибке (cannot convert parameter 1 from 'char' to 'const char *').
 
но мне нужны числа, а он мне дал символы, смайлики, пики, кресты. бубы
Всё правильно. Я не зря Вам говорил написать результаты работы кода на листочка.
Итак:
rand() генерирует значения от 0 до RAND_MAX (32767). Вот представьте, получили Вы сгенерированное число 30000.
30000 % 100 = 0; 0 - 50 = -50
Ну и какой символ соответсвует коду -50?
 
Ага, я понял. :(
А если мне надо ввести на экран и ввести в файл не "символ № -50" а просто -50 (в смысле 3 символа такие) B)

Спасибо за помощь.
 
А если мне надо ввести на экран и ввести в файл не "символ № -50" а просто -50 (в смысле 3 символа такие)
Просто не нужно делать преобразование в char:
mas=rand()%100-50;
cout << mas << "\n”;
 
Но тогда я не могу отправить число в файл.
fputs( mas , file) - выдаёт ошибку, потому что int отправлять в файл нельзя.
 
смотрите в сторону sprintf
 
European, ненененененене!! и еще раз не!
Смотри в сторону fprintf(..) !!!
Вот что например у тебя должно получиться: fprintf( file, "%d", mas );
 
European, это уже отговорки уважаемый)