Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
45 / 47 / 4
Регистрация: 11.02.2010
Сообщений: 376
1

Вывод файла

19.07.2011, 16:49. Показов 3223. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вообщем, кое-как сделал запись в файл. Теперь как бы вывести то, что уже записал? Неправильно программа работает.

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
#include<iostream>
#include<fstream>
 
 
using namespace std;
 
struct Bibliotek{
    char Name[30];
    char Family[30];
    char Name_of_Book[50];
    unsigned long int amount;
};
 
void Record();
void Output();
void Record(){
    Bibliotek *t=new Bibliotek;
    
    ofstream File("bibliotek.dat", ios::app);
    if(!File){
        cerr<<"Файл не может быть открыт";
        exit(1);
    }
    cout<<"Введите фамилию автора"<<endl;cin>>t->Family;
        cout<<"Введите имя автора"<<endl;cin>>t->Name;
        cout<<"Введите название книги"<<endl;cin>>t->Name_of_Book;
        cout<<"Введите количество экземпляров"<<endl;cin>>t->amount;
        File<<t->Family<<t->Name<<t->Name_of_Book<<t->amount;
    File.close();
}
 
void Output(){
    Bibliotek *tmp=new Bibliotek;
    ifstream File2("bibliotek.dat", ios::in);
    if(!File2){
        cerr<<"Проблемы с файлом";
        exit(1);
    }
    while(!File2.eof()){
        File2.getline(tmp->Family,30);
        File2.getline(tmp->Name,30);
        File2.getline(tmp->Name_of_Book,50);
        cout<<tmp->amount;
    }
    
    File2.close();
}
int main()
{
 
    setlocale(LC_ALL,"Russian");
    char i;
    do{
        cout<<"введите 1 чтобы добавить в базу новую книгу"<<endl;
        cout<<"Нажмите 2, чтобы вывести базу"<<endl;
        cout<<"Нажмите 0, чтобы выйти из программы"<<endl;
        cin>>i;
        switch(i){
        case '1':
    Record();
    break;
        case '2':
            Output();
            break;
        
        }
    }while(i!='0');
    return 0;
}
Добавлено через 2 часа 51 минуту
Пажаааалстааа!!! Обратите на меня внимание!!)))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2011, 16:49
Ответы с готовыми решениями:

Реализовать поиск файла в каталоге и вывод на консоль заданных атрибутов найденного файла
Приведите, пожалуйста, пример кода программы, которая ищет файлы, находящиеся в каталоге, и выдаёт...

Вывод из файла С++
Как из текстового файла содержащего кучу строк вывести 5 строк

Вывод из файла
Здравствуйте написал программу ввода/вывода из файла, но когда выводит из файла на экран, почему-то...

вывод из файла
подскажите как мне считать сколько элементов(чисел) расположено в данной строке, и если их больше...

25
Заблокирован
Автор FAQ
19.07.2011, 20:22 21
Author24 — интернет-сервис помощи студентам
Асикс, мои тебе замечания
1 Строка 15 и 34 утечка памяти

2 вывод лишь последней считанной записи
Код
C++
1
2
3
4
5
6
7
8
9
while(!File2.eof()){
                File2.sync();
                File2 >> tmp->Family;
                File2 >> tmp->Name;
                File2 >> tmp->Name_of_Book;
                File2 >> tmp->amount;
        }
 
        cout << "\n\n" << tmp->Family << '\n' << tmp->Name << '\n' << tmp->Name_of_Book << '\n' << tmp->amount;
3 в руссификации не указал что шрифт консоли на Lusinda Console нужно менять, как автор этой темыы об этом узнает, ты ему в мыслях об своих просчётах расскажешь???
Смешной не я, а ты в своих глупых ошибках, особенно во 2-й, хуже 1-курсника, так что уволь меня от своих замечаний
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
19.07.2011, 20:29 22
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
1 Строка 15 и 34 утечка памяти
C++
1
Bibliotek *t=new Bibliotek;
Здесь ? Почему ?

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
2 вывод лишь последней считанной записи
Мой код подразумевает только одну запись в базу, ты ведь такой умный, мог и догадаться.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
3 в руссификации не указал что шрифт консоли на Lusinda Console нужно менять, как автор этой темыы об этом узнает, ты ему в мыслях об своих просчётах расскажешь???
Его проблемы.
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
собенно во 2-й, хуже 1-курсника
Оно и понятно, я же только 10 клас, не не вру, 11.
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
так что уволь меня от своих замечаний
Увы, этого гарантировать немогу.
0
Заблокирован
Автор FAQ
19.07.2011, 21:04 23
1 Ну так вод, в функции вывода необходимо организовать просмотр базы, а не последней записи, обычно база данных предполагает наличие записей отличное от одной, тут даже смешно, я думал в базе одна запись))))
2 Дальше, всё что выделено new нужно чистить delete - писать программы нужно не для загаживания оперативы, а с минимально необходимым и рациональным её использованием, тоже подучи на следующий год в 11-м классе
3 Если ты пишешь не для того чтобы помочь человеку, а просто показать что ты научился юзать консоль, то толку от тебя на форуме ноль...
Как по мне это не в какие ворота не лезит

"3 в руссификации не указал что шрифт консоли на Lusinda Console нужно менять, как автор этой темыы об этом узнает, ты ему в мыслях об своих просчётах расскажешь???
Его проблемы."
4 В дальнейшем старайся делать программы отвечающие просьбам топик стартеров, форум для этого призван. На сим пока.
1
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
19.07.2011, 21:13 24
Про delete, да забыл, так как писал в спешке, в реальной программе, это, естественно, бы не случилось.
Остальное -- бред. Человек попросил сделать ему вывод из файла, я сделал, да, одну запись, но там переделать -- одна строчка кода, так что будет ему чем заняться.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
а просто показать что ты научился юзать консоль, то толку от тебя на форуме ноль...
Ага, от тебя очень много(сарказм), пихаешь новичкам свой быдлокод, это по-твоему тру ?
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
На сим пока.
Удачи.
0
45 / 47 / 4
Регистрация: 11.02.2010
Сообщений: 376
20.07.2011, 01:18  [ТС] 25
Жаль, что поругались(((. Хотел еще спросить, как поиск сделать)) и удаление)))
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
20.07.2011, 01:28 26
Цитата Сообщение от viktorrrr Посмотреть сообщение
Хотел еще спросить, как поиск сделать))
При считывание базы, сравнивешь нужное поле с ключом.
Цитата Сообщение от viktorrrr Посмотреть сообщение
и удаление)))
C++
1
2
3
4
5
6
7
8
9
std::fstream fs("input.txt", std::ios::in);//Открываеш на чтение
/*
Все сожержимое заносиш в буфер(ы) с которым(и) будеш работать
*/
fs.close()//Закрываеш поток
fs.open("input.txt", std::ios::out)//и открываеш его на запись
/*
Тут заносиш в файл все, без той книжки, которую хочешь удалить.
*/
1
20.07.2011, 01:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2011, 01:28
Помогаю со студенческими работами здесь

Вывод из файла
Доброго времени суток, уважаемые форумчане!!! Я вот с какой проблемой обращаюсь к вам: Имеется...

вывод из файла
в текстовом файле лежат 2 матрицы в таком виде размерности 7*7 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1...

Вывод из файла
Как можно вывести все содержымое файла в переменную с пробелами , с абзацами короче со всеми...

Вывод из файла
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; struct avia { ...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru