Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (23.01.2007 в 00:00)
Из файла вывести случайную строку можно при помощи следующего кода (STL)
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
  const int LENGTH = 80;
  vector<string> coll;
  vector<string>::iterator it_deep, it_submit, pos;
  const char *filename = "database.txt"
  char input[LENGTH];
  string str;
  FILE *fp;

  try
  {
    // Читаем содержимое файла в коллекцию
    fp = fopen(filename, "r");
    while(!feof(fp))
    {
      // Читаем строку из файла-источника
      fgets(input, LENGTH, fp);
      str = input;
      coll.push_back(str);
    }
    fclose(fp);

    // Cлучайная строка
    srand(time(NULL));
    int index = rand()*coll.size()/RAND_MAX;
    // Выводим случайную строку
    cout << coll[index] << endl;

    fclose(fp);
  }
  catch(bad_alloc)
  {
    cout << "Не удалось выделить память под коллекцию\n";
  }

  return 0;
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: