Розыгрыш Premium и Уникальной юзергруппы на форуме! Перейти


  • УЖЕ ЗАВТРА! Просто зашёл, нажал на кнопку участия и забрал кучу призов уже 30-го декабря: https://yougame.biz/threads/366947/

[C++] чтение из файла

they tryna be cray
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
22 Ноя 2017
Сообщения
262
Реакции
78
Допустим у меня есть файл 123.txt, в этом файле 1к строк и в каждой строке по 500 слов, так вот, можно ли считать определённое слово в определённой строке и поместить данные в переменную(int, DWORD, char)?
 
0) Предлагаю ставить какой-нибудь символ-делитель в начале каждой строки
1) Считать в string переменную данные из файла
2) string.find-ом найти нужную строку (т.е. найти n-ный делитель и n+1-ый)
3) string.find найти нужное слово между делителями

Вот пример (вырывал из своего кода, мб что поломал):

Код:
Expand Collapse Copy
        FILE* file = fopen("hello.txt", "r+");
        fseek(file, 0, SEEK_END);
        int length = ftell(file);
        fseek(file, 0, SEEK_SET);
        char* buf = new char[length + 1];
        fread(buf, 1, length, file);
        Buffer = buf;
        fclose(file);
       
        unsigned a = Buffer.find("key", 0);
        unsigned b = Buffer.find("key", a + 1);
        string.find btw a and b
        string.substr...
 
0) Предлагаю ставить какой-нибудь символ-делитель в начале каждой строки
1) Считать в string переменную данные из файла
0) зачем? в конце строки и так есть уже "какой-нибудь символ-делитель" - '\n'
1) Целесообразней построчно прочитать файл и поместить все в тот же std::vector<std::string>


По сабжу: какова структура файла? Что за слово нужно найти? Слово уникально для всего файла? Позиция слова зарание известна?
 
0) зачем? в конце строки и так есть уже "какой-нибудь символ-делитель" - '\n'
1) Целесообразней построчно прочитать файл и поместить все в тот же std::vector<std::string>
А, ну да, не подумал.
 
0) зачем? в конце строки и так есть уже "какой-нибудь символ-делитель" - '\n'
1) Целесообразней построчно прочитать файл и поместить все в тот же std::vector<std::string>


По сабжу: какова структура файла? Что за слово нужно найти? Слово уникально для всего файла? Позиция слова зарание известна?
Нужно найти неизвестное слово(т.е оно меняется), но оно всегда будет находиться в известном мне месте(допустим на строке 7, пятое слово). И да, слово уникальное, и не может повторяться.
 
Нужно найти неизвестное слово(т.е оно меняется), но оно всегда будет находиться в известном мне месте(допустим на строке 7, пятое слово). И да, слово уникальное, и не может повторяться.
Код:
Expand Collapse Copy
std::ifstream pFile("YouFile.txt");
if (!pFile)
     "Error"
 
 std::string szLine;
  std::vector< std::string> vLineList;
 
   while (getline(pFile, szLine)) {
            vLineList.push_back(szLine);     
    }
    pFile.close();
в vLineList теперь у тебя построчно находится фаил.... дальше сам разбивай строку на слова и выбирай нужную позицию...

но какой смысл в этом если слово это тебе известно изначально?
 
Назад
Сверху Снизу