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

Небольшая проблемка с прогой. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скорость доступа к элементам вектора http://www.cyberforum.ru/cpp-beginners/thread335130.html
Всем привет! Использую вектор и интеерсует вопрос скорости выбора элементов из него. У вектора есть метод vector.at(int index), который вернет мне элемент по заданному индексу. Также к вектору...
C++ Проблема с рандомом + помощь в создании алгоритма Такая штука - делаю одну прогу (игра напоминающая бомбермен)... Решил отдельнонаписать прожку в которой юзер начинает матч - боты сами ходят и коцают друг друга ... ПРОБЛЕМА, только и заключаеться... http://www.cyberforum.ru/cpp-beginners/thread335111.html
Из цифр в буквы C++
Скажите как перейти из цифрового номера буквы в ANSI обратно в букву. Как букву в цифру превратить я знаю cout<<(int)'A';
Решение суммы ряда C++
Не раз видел задачки типа "Дано вещественное число Х и целое число N (>0).Найти значение выражения 1-х^2/(2!)+x^4/(4!)-...+(-1)^n*X^(2*n)/((2*N)!) (N!=1*2*...*N). ... " , не понимал и откладывал в...
C++ Русский язык в консоли http://www.cyberforum.ru/cpp-beginners/thread335005.html
Скажу сразу, что закрепленную тему я прочитал, но не очень понял, как это реализовать. Вот код, текст выводится неизвестными символами. Будьте добры, переделайте программу так, что отображался...
C++ Посоветуйте open source проект Посоветуйте, пожалуйста, хороший open-source проект на котором можно поучиться. Критерии: 1. Лицензия GNU/GPL, BSD etc. 2. Основные языки C/C++ 4. Платформа - Windows 3. Хорошая документация и... подробнее

Показать сообщение отдельно
OstapBender
583 / 522 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
21.07.2011, 22:54
как вариант алгоритма выборки случайного числа:
1) смотри скоко символов в файле ( fseek + ftell )
2) выбирай случайное число N от 0 до <длина файла>
3) читай по 1 слову ( fscanf ) пока ftell <= N или !eof

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
    FILE * fp = fopen("1.txt","rt");
    if (!fp) { return 1; }
 
    srand(time(0));
 
    fseek(fp,0,SEEK_END);
    size_t sz_file = ftell(fp);
    fseek(fp,0,SEEK_SET);
 
    size_t pos = rand()%sz_file;
 
    char word[30];
    while ( fscanf(fp,"%s",word)==1 && !feof(fp) && (ftell(fp)<=pos));
 
    puts(word);
    puts("Done.");
 
    getchar();
    return 0;
}
работает блин
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru