потоковое считывание столбцов из файла с++
Добрый день, уважаемые коллеги!
У меня есть файл, в котором содержатся данные ввиде 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 <
cout<< replace.second_symbol<
cout<< replace.third_symbol <
}
inputFile.close();
return 0;
}
На выходе получаю полнейший бред
Вопросы у меня следующие:
1) правильно ли делать это через структуру?
2) если я на правильном пути, то почему поток не инициализируется данными? Как это исправить?
С Уважением!
Что то я попробовал такой вариант, который был предложн ниже, все равно не хочет выводить. А сравнение было нужно вот зачем. Я хотел сначала научиться выписывать данные типа char, а затем отже самое попробовать сделать с типом int, чтобы можно было складывать, вычитать и т. д.
<< replace.first_symbol[n] << ' '
<< replace.second_symbol[n] << ' '
<< replace.third_symbol[n] << endl;
Как то так примерно. Кстати, тук как лучше делать-в открытую или в личку писать?
В дальнейшем мне надо будет сделать следующее с этой программой. Моя задача полная состоит в следующем. Надо ввести текст с клавиатуры, и этот текст должен будет переведен в типохакерский язык. А словарь перевода находится в другом файле, который таким образом нужно будет открыть
Уважаемый ra, спасибо огромное! Все работает, я просто не туда файл записал!!!
А, вот все таки заключительный вопрос: если у меня 3строка состоит не из одного символа, а из 3, например
Y y \//
Z z -/_
Как мне ее ввести в массив char?
Т. е. я пытаюсь сделать так
char massiv_first_element[40];
char massiv_second_element[40];
char massiv_third_element[40];
int n=0;
while (inputFile >> replace.first_symbol
>> replace.second_symbol
>> replace.third_symbol)
{
massiv_first_element[n]=replace.first_symbol;
massiv_second_element[n]=replace.second_symbol;
massiv_third_element[n]=replace.third_symbol;
n++;
выдается ошибка перехода от char* к char