C ++ заполняет элементы массива с помощью ifstream - PullRequest
0 голосов
/ 02 мая 2020

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

ifstream infile;
infile.open("info.dat");
string line;
int counter = 0;
while (getline(infile, line))
{
    getline(infile ,line ,'|');
    b[counter] = line;
    counter++;
    cout << endl;
}
infile.close();

cout << b[0] << endl << b[1];
return 0;
}

b[0] содержит весь файл, а b[1] пусто. Вот что содержит файл .dat.

green dog|red fish|brass monkey|purpe elephant||||||||||||

Я пытаюсь использовать массив b [] для разделения строк. в моем cout внизу я ожидал, что «зеленая собака» напечатает в первой строке, а «red fi sh» - во второй строке консоли.

1 Ответ

0 голосов
/ 02 мая 2020

Это

while (getline(infile, line))
{
    getline(infile ,line ,'|');

должно быть таким

while (getline(infile, line, '|'))
{

Я не знаю, почему вы выбрали первый вариант, когда у вас есть '|' данные с разделителями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...