Я отредактировал мой код, и тот дал мне Квентин. Поэтому моя проблема заключается в том, что я хотел бы использовать функцию, запущенную ключевым словом в carac из текстового файла, и использовать строку сразу после carac в этой функции, которая находится в другом файле.
for(std::string carac; fichier>>carac;)
{
auto found = _map.find(carac);
if(found != _map.end()
{
found->second();
pile_double.afficher();
}
}
#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(), иначе вы выполните слишком много итераций.
fichier >> carac
будет выполняться каждый раз.