Чтение из файла с текстом и числами в одной строке в массив - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть файл, в котором записано, сколько людей выбрали определенный цвет 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;
}






...