Другие языки программирования и технологии

потоковое считывание столбцов из файла с++

Добрый день, уважаемые коллеги!
У меня есть файл, в котором содержатся данные ввиде 3-х столбцов:
A a @
B b 8
C c [
....

Моя задача состоит в том, чтобы вывести эти данные в поток, а затем на экран. Я пытаюсь сделать следующее: создать структуру, состоящую из 3 элементов, открыть файл и в цикле выводить до конца файла эти данные:

struct Replaces
{
char first_symbol ;
char second_symbol ;
char third_symbol ;
};

int main()
{
ifstream inputFile("replaces");
Replaces replace;

int n;
while(n!=inputFile.eof())
{
inputFile>> replace.first_symbol;
inputFile>> replace.second_symbol;
inputFile>> replace.third_symbol;
cout<< replace.first_symbol <
Как-то так:

#include <fstream>
#include <iostream>

using namespace std;

struct Replaces {
    char first_symbol ;
    char second_symbol ;
    char third_symbol ;
};

int main() {
    ifstream inputFile("replaces");
    Replaces replace;

    while (inputFile
                >> replace.first_symbol
                >> replace.second_symbol
                >> replace.third_symbol) {
        cout
            << replace.first_symbol << ' '
            << replace.second_symbol << ' '
            << replace.third_symbol << endl;
    }
}

> 1) правильно ли делать это через структуру?
Если вам удобно через структуру, то значит правильно. По мне, так тут достаточно использовать три символьных переменных. Впрочем, что дальше нужно делать с этими символами неизвестно (вы об этом ничего не сообщаете) , может быть и в дальнейшем будет удобнее работать со структурой.

> 2) если я на правильном пути, то почему поток не инициализируется данными? Как это исправить?

> int n;
n неинициализирована

> while(n!=inputFile.eof())
Зачем тут нужно это сравнение?

Update:
> Что то я попробовал такой вариант, который был предложн ниже, все равно не хочет выводить.
Для программы какая папка является рабочей? Вот туда ваш файл и положите. Или напишите полный путь к файлу, типа: ifstream inputFile("c:/temp/replaces");
Все работает:


> Кстати, тук как лучше делать-в открытую или в личку писать?
Набрать нужное число баллов, отвечая на вопросы, и получите возможность разрешать комментарии в к ответам.
Дима Акишин
Дима Акишин
65 797
Лучший ответ