Это блок кода из программы, которую я сейчас пишу
//declaration of builder variables
std::string name;
int ability;
int variability;
std::vector<string> builderVector;
std::ifstream buildersList("Builders.txt");
std::string outputFile = "output.txt";
std::string input;
void readFile() //function to read Builders file
{
std::string line;
// read each line for builders
while (std::getline(buildersList, line)) {
std::string token;
std::istringstream ss(line);
// then read each element by delimiter
while (std::getline(ss, token, ':')) //spilt the variables
ss >> name >> ability >> variability;
builderVector.push_back(token);
cout << name;
}
И это мой текстовый файл
Reliable Rover:70:1.
Sloppy Simon:20:4.
Technical Tom:90:3.
При использовании расширителя возвращается следующее
70:1.20:4.90:3
До сих пор программа успешно считывает текстовый файл «Builders.txt» и, используя разделитель, разделяется на полную вершину, чтобы различать каждую запись, и сохраняет ее в векторе. То, что я сейчас пытаюсь сделать, это назначить каждому элементу, разделенному двоеточием, переменную. Так, например, Reliable Rover - это имя 70, это способность, а 1 - это изменчивость. В моем коде выше я попытался сделать это через строку
ss >> name >> ability >> variability;
Но когда я go возвращает значение, используя cout, он возвращает только только способность и переменность
Спасибо.