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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2010, 23:29   #1
balamut
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 35
По умолчанию Чтение из файла!

Уважаемые эксперты помогите с ошиибкой! Работаю со структурами данных книги, там всякие сортировки добавление записи и чтение из файла. Так вот все работает нормально, кроме отображения данных из файла на экране в консольном режиме. Вместо того чтобы отображать например:
1 Lafore ProgrammingC++ Piter 2004
отображается
1 -842150451.
хотя я проверил в Borland C++3.1 работает все нормально, а вот в Visual Studio2003 нет.
вот код функции отображения на экране:
knigi *px;

void dmassiv:utputknigi ()
{
int i;
for (i=0;i<n;i++)
cout<<setw(3)<<setiosflags(ios::lef t)<<i+1<<" "<<setw(15)<<
<<setiosflags(ios::left)<<px[i].avtor<<" "<<setw(20)<<
<<setiosflags(ios::left)<<px[i].naimen<<" "<<setw(20)<<
<<setiosflags(ios::left)<<px[i].izdat<<" "<<setw(5)<<
<<setiosflags(ios::left)<<px[i].god<<endl;
}
balamut вне форума Ответить с цитированием
Старый 17.05.2010, 00:24   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Во-первых, теги кода.
Во-вторых, что это за данные:

px[i].avtor
Carbon вне форума Ответить с цитированием
Старый 17.05.2010, 00:38   #3
balamut
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 35
По умолчанию

px[i].avtor это запись структуры книги

struct knigi
{
char avtor[30];
char naimen[30];
char izdat[30];
int god;
};

class dmassiv//это динамический массив
{
private:
knigi *px;
int n;
}
а в смысле теги кода?
balamut вне форума Ответить с цитированием
Старый 17.05.2010, 00:51   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Попробуйте:

std::string( px[i].avtor )

Цитата:
Сообщение от balamut Посмотреть сообщение
а в смысле теги кода?
http://programmersforum.ru/announcement.php?f=31
Carbon вне форума Ответить с цитированием
Старый 17.05.2010, 00:57   #5
balamut
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 35
По умолчанию

выдает следующую ошибку:
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::basic_string<_Elem,_Traits,_A x>' (or there is no acceptable conversion)
вообще говоря в файл записывает без проблем, и как мне кажется из файла считывает тоже, проблема в отображении на экране данных из файла.

Последний раз редактировалось balamut; 17.05.2010 в 01:00.
balamut вне форума Ответить с цитированием
Старый 17.05.2010, 00:59   #6
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

А если так:
( const char * )px[i].avtor
Carbon вне форума Ответить с цитированием
Старый 17.05.2010, 01:09   #7
balamut
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 35
По умолчанию

уже ошибки нет, но отображения на экране тоже нет!
а может все таки ошибка чтения из файла:
вот код:
void dmassiv::inputknigiFileDinam ()
{
int i;
ifstream fin;
char file[L];
knigi t;
n=0;
cout<<"Otkrit fail dannih iz: ";
cin>>file;
fin.open(file);
if(fin.fail())
{
cout<<"Oshibka otkritia faila\n";
getch();
px=NULL;
return;
};
do
{
fin>>t.avtor>>t.naimen>>t.izdat>>t. god;
n++;
}
while(fin.good());
n--;
fin.close();
if(px!=NULL)
delete[]px;
px=new knigi[n];
fin.open(file);
for (i=0;i<n;i++)
fin>>px[i].avtor>>px[i].naimen>>px[i].izdat>>px[i].god;
fin.close();
getch();
}
To Carbon: глянь своим проффессиональным глазом если не сложно!
balamut вне форума Ответить с цитированием
Старый 17.05.2010, 01:58   #8
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Я кому говорил про теги???
Carbon вне форума Ответить с цитированием
Старый 17.05.2010, 02:39   #9
balamut
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 35
По умолчанию

простите, но я не понимаю все равно что дальше делать:
заменить чтоли все по типу ( const char * )px[i].avtor
balamut вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение из файла Sparky Общие вопросы C/C++ 5 13.04.2010 18:47
Чтение из файла utrnjhyfgjktjy Помощь студентам 9 30.01.2010 17:41
чтение из файла. aschak Общие вопросы C/C++ 9 30.12.2008 15:24
Чтение из файла Arkuz Общие вопросы Delphi 14 08.10.2008 19:52
Чтение файла [Smarik] Помощь студентам 8 28.04.2008 22:15