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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2011, 13:04   #1
groop
 
Регистрация: 13.06.2011
Сообщений: 8
Вопрос Вопрос по литерным файлам

Всем доброго времени суток. У меня такой вопрос:
Почему, когда я записываю по переменной типа int в файл, с помощью fwrite, если открывать данный файл там бред типа "ь|ЊЊьь||||ЊЊ" , а если через мою же программу открывать, открываются нормальные числа. Так и надо? Или же можно както записывать в файл, чтоб простым блокнотом читать можно было?
Заранее спасибо
groop вне форума Ответить с цитированием
Старый 13.06.2011, 13:09   #2
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Ну потому что int это четыре байта в памяти, эти четыре байта в файл и пишутся. А блокнот предназначен для текста, он это выводит как четыре символа какой-нибудь абракадаброй (или еще сколько-нибудь, зависит от выбранной кодировки).
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.06.2011, 13:20   #3
groop
 
Регистрация: 13.06.2011
Сообщений: 8
По умолчанию

Спасибо, с этим понятно, суть я понял. Но как тогда сделать, чтобы в файл записался читаемый текст?
groop вне форума Ответить с цитированием
Старый 13.06.2011, 13:26   #4
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Код:
fprintf(file,"%i",x);
Запишет в читабельном виде)
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.06.2011, 13:29   #5
groop
 
Регистрация: 13.06.2011
Сообщений: 8
По умолчанию

И попутно вопрос оффтоп:
Вот я создал структуру, содержащую в себе информацию о книгах, пользователь в нее информацию вгоняет с помощью gets(b.name) например.
А как мне потом обращаться к n-ному члену структуры? например к 4 книге?
серьезно информации нигде не нашел, puts(b.name) работает, если тока я для 1 книжки ввел инфу, а если я хочу вывести на экран название (name) 3 книги? как? думал puts(b[7].name) но не работает.
groop вне форума Ответить с цитированием
Старый 13.06.2011, 13:31   #6
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Приведите код объявленного типа структуры.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.06.2011, 13:35   #7
groop
 
Регистрация: 13.06.2011
Сообщений: 8
Хорошо

Цитата:
Сообщение от Granus Посмотреть сообщение
Код:
fprintf(file,"%i",x);
Запишет в читабельном виде)
спасибо, помогло
groop вне форума Ответить с цитированием
Старый 13.06.2011, 13:40   #8
groop
 
Регистрация: 13.06.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Приведите код объявленного типа структуры.
Код:
Код:
struct Book
{
char name[20];
char author[20];
char editor[20];
char rebuction[20];
int year;
double cost;
int language;// (0-русский, 1- все остальные);
int type;
int type2;
}
Вот такая структура.
groop вне форума Ответить с цитированием
Старый 13.06.2011, 13:44   #9
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Цитата:
Сообщение от groop
А как мне потом обращаться к n-ному члену структуры? например к 4 книге?
Член структуры и четвертая книга никак не связаны. В одной структуре информация об одной книге. Если хотите несколько книг, сделайте массив структур.
Код:
Book B[365];
puts(B[10].name);
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.06.2011, 14:00   #10
groop
 
Регистрация: 13.06.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Член структуры и четвертая книга никак не связаны. В одной структуре информация об одной книге. Если хотите несколько книг, сделайте массив структур.
Код:
Book B[365];
puts(B[10].name);
И снова спасибо!
groop вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по H файлам в с++ Яр|/||< (^_^) Свободное общение 4 23.03.2010 13:17
Вопрос по файлам Molotoff Общие вопросы C/C++ 4 20.06.2009 21:58
Вопрос по файлам. True Общие вопросы Delphi 5 06.05.2008 11:15
Вопрос по INI файлам kuzjma Общие вопросы C/C++ 3 11.02.2008 09:00