Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
#1

чтением из файла.... - C++

07.01.2010, 21:21. Просмотров 1556. Ответов 7
Метки нет (Все метки)

у меня есть два класса...
один (базовый) читает строку из файла и присваивает её значение переменной этого типа
второй (производный) создаёт массив таких переменных базового типа, заполняя его строчками из файла
но файл почему-то не находит!
почему?
вот прога:

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
#include <iostream.h>
#include <string.h>
#include <fstream.h>
class base {
    char word[9];
public:
    char slovo[9];
    base();
};
base::base() {
    for (int i=0; i<9; i++) {
        word[i]=slovo[i];
    }
    cout<<"vvedite slovo"<<endl;
    ifstream fin("input.txt", ios::in|ios::nocreate);
    if (!fin) {
        cout<<"fail input.txt not found"<<endl;
    }
    fin>>word;
}
class slovar {
public:
    slovar();
    base a[4],e[4];
 
};
slovar::slovar(){
    ifstream fin("input.txt", ios::in|ios::nocreate);
    if (!fin) {
        cout<<"fail input.txt not found"<<endl;
    }
    for (int i=0; i<4; i++) {
        fin>>a[i].slovo;
        cout<<a[i].slovo<<endl;
    }
}
int main() {
    base a1,e1;
    slovar a2,e2;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.01.2010, 22:03     чтением из файла.... #2
C++
1
ifstream fin("input.txt", ios::in|ios::nocreate);
C++
1
ifstream fin("input.txt");
ifstream уже подразумевает

Добавлено через 57 секунд
C++
1
using namespace std;
не видать
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
07.01.2010, 22:42  [ТС]     чтением из файла.... #3
using namespace std;-не пашет
на счёт

ifstream fin("input.txt", ios::in|ios::nocreate);

ifstream fin("input.txt");

не понял...
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.01.2010, 22:55     чтением из файла.... #4
C++
1
#include <fstream.h>
после неё using namespace std;

C++
1
ifstream fin("input.txt");
ifstream уже открывает файл на ios::in, а nocreate для файла, открываемого для чтения, бессмысленен
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
07.01.2010, 23:34  [ТС]     чтением из файла.... #5
ifstream fin("input.txt");-это не меняет ничего...
хотя я с Вами согласен...
а вот using namespace std;
выдаёт ошибку
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.01.2010, 05:42     чтением из файла.... #6
input.txt должен лежать в той же директории, где программа

Добавлено через 4 минуты
Цитата Сообщение от velodro
а вот using namespace std;
выдаёт ошибку
тогда закомментируй строчку, без неё cout<<"vvedite slovo"<<endl; не должно работать, потому что cout находится в этом простанстве имён и endl тоже
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
08.01.2010, 23:42  [ТС]     чтением из файла.... #7
в моём варианте если дописать путь до файла, то файл можно будет держать и в другой директории....

без using namespace std; и cout<<"vvedite slovo"<<endl; работает... спасибо огромное но у меня возникает вопрос (чисто в познавательных целях) а как этого избежать... (чтобы можно было
cout<<"vvedite slovo"<<endl; использовать)
и почему не работало?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2010, 00:22     чтением из файла....
Еще ссылки по теме:

C++ Не могу разобраться с чтением из файла
C++ Матрица с чтением функции из файла
Работа с чтением/записью бинарного файла C++
C++ Ошибка с чтением файла
C++ Ошибка с чтением файла

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

Или воспользуйтесь поиском по форуму:
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.01.2010, 00:22     чтением из файла.... #8
если там каким-то образом нельзя юзать using namespace
можно попробовать std::cout << "vvedite slovo" << std::endl;

а вообще #include <iostream.h> говорит об одном из таких компиляторов, где может быть что-нибудь не так
современные обычно юзают #include <iostream> и в них отсутствие using namespace без явного указания пространства для cout и endl выдаст ошибку

чтобы проверить как там в действительности
C++
1
2
3
4
5
6
7
8
9
#include <iostream.h>
 
using namespace std;
 
int main(void)
{
    cout << "test" << endl;
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
#include <iostream.h>
 
//using namespace std;
 
int main(void)
{
    std::cout << "test" << std::endl;
    return 0;
}
на нормальном компиляторе должны работать обе программы, если #include <iostream.h> заменить на #include <iostream>
Yandex
Объявления
09.01.2010, 00:22     чтением из файла....
Ответ Создать тему
Опции темы

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