Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2011, 17:16   #1
lady.ulumba
Пользователь
 
Регистрация: 08.09.2011
Сообщений: 39
По умолчанию Файлы в СИ++

Информация, входящая в файл: Ф.И.О. автора, название книги, издательство, стоимость.Получить общую стоимость всех книг.
Цитата:
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <string.h>
#include <fstream.h>
#include <conio.h>
#pragma argsused

int main(int argc, char* argv[])
{ struct knigi{
char fio[20],nazv[20],izdat[20],fio1[20];
int stoim;};
int i,n,sum=0;
knigi avtor[30];
ofstream output("C:/Base.txt",ios::app);
cout<<"Vvedite kol-vo avtorov:";
cin>>n;
cout<<"Vvedite dannie:"<<endl;
for(i=0;i<n;i++)
{cout<<"fio:";
cin>>avtor[i].fio;
cout<<"nazvanie knigi:";
cin>>avtor[i].nazv;
cout<<"izdatel'stvo:";
cin>>avtor[i].izdat;
cout<<"stoimost':";
cin>>avtor[i].stoim;}
cout<<"\n";
cout<<"Dannie vneseni"<<endl;
for(i=0;i<n;i++)
output<<avtor[i].fio<<"\n"<<avtor[i].nazv<<"\n"<<avtor[i].izdat<<"\n"<<avtor[i].stoim<<"\n";
output.close();
ifstream input("C:/Base.txt");
if(!input) exit(1);
while(!input.eof())
{for(i=0;i<n;i++)
input>>avtor[i].stoim;
sum+=avtor[i].stoim; break;
}
cout<<"sum="<<sum;
input.close();
getch();
return 0;
}
В конце получается, что сумма равна 0.Подскажите, где ошибка?
lady.ulumba вне форума Ответить с цитированием
Старый 08.12.2011, 17:20   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

вот так ты записываешь в файл:
Код:
output<<avtor[i].fio<<"\n"<<avtor[i].nazv<<"\n"<<avtor[i].izdat<<"\n"<<avtor[i].stoim<<"\n";
а вот так ты пытаешься оттуда прочитать:
Код:
input>>avtor[i].stoim;
Ничего не смущает?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 08.12.2011, 17:45   #3
lady.ulumba
Пользователь
 
Регистрация: 08.09.2011
Сообщений: 39
По умолчанию

У меня ошибка при считывании.Как можно исправить?
lady.ulumba вне форума Ответить с цитированием
Старый 08.12.2011, 18:29   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от lady.ulumba Посмотреть сообщение
У меня ошибка при считывании.Как можно исправить?
Объясняю более доступно.

Во-первых, ты перепутала ifstream и ofstream.
Input -- ввести, Output -- вывести.

Далее.
Ты записываешь в файл строку примерно такого вида:
Код:
Карл Маркс Капитал Малыш 5.95
А считать пытаешься сразу стоимость. Откуда программе знать, что она у тебя спрятана в самом конце строки?

И еще одно -- пишешь на С++, так используй тип string, а не char[]
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 08.12.2011, 18:43   #5
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию

Уже С++ в глаза не видел больше года, но по-моему лучший способ решать через или через вектор...
acteralex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы (текстовые файлы) Finn4ik Помощь студентам 0 25.04.2011 21:42
Не сохраняет файлы (Создает файлы пустышки) Rock231 Помощь студентам 2 25.12.2010 12:31
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
файлы StartMis Общие вопросы Delphi 9 27.08.2008 09:26
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53