Re[2]: Как преобразовать буфер из файла в массив строк?
От: Аноним  
Дата: 05.06.02 08:36
Оценка:
Здравствуйте Bell, Вы писали:

B>Тут можно пойти двумя путями

B>1. Сразу читать файл построчно, и складывать эти строки в контейнер, например так:

B>
B>std::vector<std::string> aStrings; //Массив строк (кол-во строк заранее неизвестно)
B>std::string strTmp;
B>std::ifstream in("Твой файл");
B>while(getline(in, strTmp))
B>   aStrings.push_back(strTmp);
B>


B>2. Считать все в оди большой массив char*, и затем преобразовать его, например так:

B>
B>char* big_buf;
B>// заполнение big_buf
B>std::vector<char*> aStrings;
B>bool bNewLine = true;
B>for(int i = 0; i < nBufSize - 1; ++i)
B>{
B>   if(big_buf[i] == '\n')
B>      bNewLine = true;
B>   else
B>      bNewLine = false;

B>   if(bNewLine)
B>   {
B>      big_buf[i] = 0;
B>      aStrings.push_back(&big_buf[i+1]);
B>   }
B>}
B>


Спасибо за ответ!
У меня,видимо, какая-то урезанная версия. <vector> там нет :( и
push_back пишет left of '.push_back' must have struct/union type
(а на объявление std::string strTmp; пишет
syntax error : missing ';' before ':') // stdio.h подключен...
Можно ли сделать то же самое, только в варианте строк типа С? (т.е. массивы символов?)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.