#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
void fnReadFile(vector<string> &listOfString, const char* pszNameOfFile)
{
ifstream in(pszNameOfFile, ios::in);
if(in.fail())
{
cout << "\nError."<<endl;
return;
}
string sTempStr = "";
while(!in.eof())
{
in >> sTempStr;
listOfString.push_back(sTempStr);
}
in.close();
return;
}
int _tmain(int argc, _TCHAR* argv[])
{
vector<string> listOfNameFile;
fnReadFile(listOfNameFile, "MyFile.txt");
vector<string>* massiveOfString = new vector<string>[listOfNameFile.size()];
for(unsigned int i=0; i<listOfNameFile.size(); i++)
{
fnReadFile(massiveOfString, (char*)listOfNameFile);//хз преобразует или нет
//если нет погугли на тему приведения из стринг в кар со звездой
}
int i = rand()%listOfNameFile.size();
int j = rand()%massiveOfString.size();
cout << "\nRandom string: "<< massiveOfString[j]<<endl;
system("pause");
return EXIT_SUCCESS;
}
файл список-
напишите программу которая открывает файл список содержащий имена файлов по одному на строке Программа подсчитывает количество предложений во всех файлах и выводит на экран случайно выбранное предложение
Или подскажите хоть как нибудь
Открываешь, в цикле считываешь по одному имени файла. Открываешь это имя, считаешь в нём число точек, рандомно выбираешь точку от 0 до max-1. Если выпал 0, то это начало файла. Копируешь часть файла от выпавшей точки +2 символа (считаем, что там пробел), до выпавшей+1 точки. Если выпала нулевая точка, копируешь от начала файла до первой точки.
Вот примерный код, не тестировал и вообще написано на коленки в автобусе, так что, но принцип должен быть понятен... там посмотри как преобразовываеться из стринг в кар*... и вместо массива векторов лучше используй стливское хранилише!=)