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

случайная фраза - C++

Восстановить пароль Регистрация
 
maxon910102
Сообщений: n/a
02.05.2013, 17:16     случайная фраза #1
нужна программа, которая будет считывать текст из файла и выводить одно случайное слово. если не трудно помогите пожалуйста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
02.05.2013, 17:59     случайная фраза #2
можно просто посчитать количество слов в фаиле ))
потом сгенерировать случаиное из по модулю количества ))
потом после i-й непрерывной последовательности всяких знаков препинания и пробелов до следующей i + 1 вывести все символы т.е. i-е слово ))

Добавлено через 53 секунды
Дак фраза или слово ?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
02.05.2013, 19:10     случайная фраза #3
Qazan, в общем случае считать слова необязательно. Просто случайно задать смещение от начала до "размер файла". На какое слово попали, то и выводить. До первого пробела или знака препинания в начале и конце. Если фраза, то уже сложнее.
maxon910102
Сообщений: n/a
03.05.2013, 21:30     случайная фраза #4
просто я этот язык не знаю вообще, а мне этот модуль надо вставить. в файле у нас содержатся просто слова и вывести нужно одно случайное
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
03.05.2013, 22:51     случайная фраза #5
можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    ifstream file("text.txt", ios::in);
    
    if (!file.good()) return -1;
    
    string word;
    srand(time(0));
 
    file.seekg(0, ios::end);
    size_t fsize = file.tellg();
    file.seekg(0, ios::beg);
 
    fstream::pos_type pos;
    do {
    pos = rand();
    file.seekg(pos, ios::beg);
    } while (pos > fsize || isalpha(file.get()));
 
    file >> word;
    cout << word;
 
    file.close();
    return 0;
}
Yandex
Объявления
03.05.2013, 22:51     случайная фраза
Ответ Создать тему
Опции темы

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