У меня есть файл, в котором записано, сколько людей выбрали определенный цвет c из всех людей в разных классах. Я пытаюсь прочитать этот файл в массив на основе цвета. например, если цвет красный, я хочу сохранить 2 числа из этой строки в массив, содержащий список красных чисел. Файл уже отформатирован таким образом и не может быть изменен. Первая проблема, с которой я столкнулся, заключается в том, что строка не читается из файла.
Вот что находится внутри файла. Были и другие цвета, и я решил включить их только после того, как программа запустится правильно
Red 18 20
Black 15 20
Red 13 18
Black 12 16
Вот что я пробовал
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string myString = " ";
int redArray[4]= {0};
int blackArray[4] ={0};
int counter = 0;
std::ifstream myFile;
myFile.open("record.txt");
while (!myFile.eof())
{
getline(myFile, myString, ' '); //Get the first text and ignore spaces
//Runs this block if the color is red
if (myString == "Red")
{
myFile >>redArray[counter]; //Get the numbers from the red rows
}
//Run this block if the color Black
else if (myString == "Black")
{
myFile >>blackArray[counter]; //Get the number from black rows
}
counter++;
}
cout <<myString <<endl; //to show if string is read properly
//Display the values of redArray
for (int i = 0; i <4; i++)
{
cout <<redArray <<" ";
}
cout <<endl;
//Display the values of blackArrays
for (int k = 0; k <4; k++)
{
cout <<blackArray[k] <<" ";
}
return 0;
}