Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 15.04.2015
Сообщений: 32
1

Чтение текста из файла

25.11.2015, 20:40. Показов 449. Ответов 1
Метки нет (Все метки)

помогите пожалуйста исправить ошибку, весь мозг себе сломал, мне кажется, что где-то в перегрузке оператора присваивания напортачил. как это исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#define _CRT_SECURE_NO_WARNINGS
 
#include <iostream>
#include <string>
#include <windows.h>
#include <fstream>
 
using namespace std;
 
const char *filename = "base.txt";
int s = 0;
 
struct book 
{
    char nameAuthor[30];
    char bookName[30];
    int year;
    char sum[30];
 
 
 
    book & operator =(char* buf) //перегрузка "=" для работы с восстановлением файла
    { 
        strcpy_s(nameAuthor, 29, strtok(buf, ",")); //копируем в поля структуры данные из файла
        strcpy_s(bookName, 29, strtok(buf, ","));
        year = atoi(strtok(buf, ","));
        strcpy_s(sum, 29, strtok(buf, ","));
        
    }
};
template <class T> 
struct Node
{
    T n;
    Node<T> *next;
 
};
 
template <class T>
class List
{
 
    Node<T> *head;
public:
    void add(T *n);
 
        void readFromFile(List &c);
List() //конструктор
    {
        head = NULL;
    }
    ~List();
 
};
 
template <class T>
List<T>::~List() //деструктор
{
    while (head != NULL)
    {
        Node <T> *temp;
        temp = head->next;
        delete head;
        head = temp;
 
    }
}
 
 
template <class T>
void List<T>::add(T *n)//добавить
{
    Node<T> *temp = new Node<T>;
    temp->n = *n;
    temp->next = head;
    head = temp;
    s = s + 1;
 
}
template <class T>
void List<T>::readFromFile(List & c)  //восстановление из файла
{
    ifstream istr("base.txt");
    if (!istr)
    {
        cout << "Файл не найден" << endl;
        return;
    }
    const int max = 255;
    char buf[max];
 
    while (!istr.eof())
    {
        istr.getline(buf, max);
        if (buf != NULL && strlen(buf)>0)
        { T *el= new T;
             el = buf; //ругается на эту строку "невозможно преобразовать из *book в char[255]"
            c.add(el);
        }
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2015, 20:40
Ответы с готовыми решениями:

Чтение текста из файла
Здравствуйте. У меня есть задание по С++ и один из его аспектов - это поиск программой текстового...

Чтение текста из файла [VC++]
Здравствуйте, уважаемые знатоки) С толкнулся с проблемой чтения текста из файла (вроде бы задача...

Чтение текста из файла
Ув. жители форума. Дана задача, только ее нужно переделать чтобы она читала текст из файла!...

Чтение текста из файла C++
Нужно написать программу, которая считывает текст из файла, и меняет местами каждые два соседних...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
1
6959 / 6007 / 2728
Регистрация: 14.04.2014
Сообщений: 25,689
25.11.2015, 21:17 2
Второй и последующие вызовы strtok() должны быть с NULL. Возврат *this отсутствует.
И если указатель, то:
C++
1
*el = buf;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2015, 21:17

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Чтение текста из файла
Господа программисты , мне нужна ваша помощь ! Суть: Есть две переменные , надо чтобы первой...

Чтение текста из файла
Собственно в функции ниже надо как-то дополнить, чтобы, если файл пуст, то переменная ErrorFindWord...

Чтение/запись текста из файла
Суть проблемы следующая: по идее при запуске программа копирует данные из файла А в файл B, затем...

Чтение бинарного текста из файла
Подскажите, пожалуйста, как считать данные, записанные в бинарном виде в текстовом файле. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.