Чтение строки из текстового файла

0

Я отредактировал мой код, и тот дал мне Квентин. Поэтому моя проблема заключается в том, что я хотел бы использовать функцию, запущенную ключевым словом в carac из текстового файла, и использовать строку сразу после carac в этой функции, которая находится в другом файле.

for(std::string carac; fichier>>carac;)
{
    auto found = _map.find(carac);
    if(found != _map.end()
    {
        found->second();
        pile_double.afficher();
    }
}
  • 0
    (En) Стек - это LIFO, очередь - это FIFO. (в) стеки LIFO, хвосты FIFO.
  • 0
    Ну, вы в цикле, поэтому fichier >> carac будет выполняться каждый раз.
Показать ещё 5 комментариев
Теги:
string

1 ответ

0
#include <iostream>
#include <fstream>
#include <map>
#include <functional>

static std::map<std::string, std::function<void()>> gMap = {
    {"un",      []{ std::cout << "ein\n";    }},
    {"trois",   []{ std::cout << "drei\n";   }}
};

int main(int, char**)
{
    std::ifstream fichier("input.txt");
    if(!fichier.is_open())
        return 1;

    for(std::string carac; fichier >> carac;) {
        auto found = gMap.find(carac);
        if(found != gMap.end()) {
            found->second();
            pile_double.display();
        }
    }

    return 0;
}

Я думаю, что это делает то, что вы хотите. Обратите внимание, что вы должны проверить return from >>, а не eof(), иначе вы выполните слишком много итераций.

  • 0
    Хорошо, я попробую это. Также, возможно, я объяснил это неправильно, в моей функции с карты, так что {"un", [] {std :: cout << "ein \ n"; }}, в вашем примере я бы хотел использовать std :: cout << "carac + 1", поэтому используйте следующую строку из моего текстового файла. Возможно ли это, поскольку функция находится в другом файле?
  • 0
    Итак, если ваши файлы содержат «один два», вы хотите, чтобы функция, связанная с «одним», вызывалась и использовала «два»?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню