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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2009, 00:18   #1
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
Радость система ввода вывода

У меня задача такая: Дан файл типа: номер, фамилия, оценка. не используя дополнительного файла, разместить в этом файле сведения сначала об отличниках хорошистах троешниках. Прогу делать никого не прошу сам умею но проблема такая. Файл бинарный я не пойму что это поэтому у меня вопросы:
1. как мне заполнять документ как обычно ну там текст числа.
2. разъясните толком чем вот этот тип отличается от обычного. Заранеее спасибо
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Старый 02.04.2009, 08:17   #2
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

Когда вы работаете с обычным файлом, вам доступны опции открытия этого файла. r, w, a, r+, w+, a+.
Для бинарного файла используются аналогичные опции rb, wb, ab, r+b, w+b, a+b. В остальном работа с файлом аналогична работе с тестовым.

Код:
...двоичные файлы хранят информацию почти в том виде, в котором она
представляется в памяти компьютера во время работы программы. Поэтому
при чтении такого файла практически не выполняется никаких
преобразований, что ускоряет собственно процесс чтения.
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 02.04.2009, 13:00   #3
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

А самое главное то не сказали - при обработки бинарных файлов не происходит преобразования управляющих последовательностей (например '\n', '\0' и т.п.). То есть для обработки бинарного файла вы должны точно знать сколько байт занимает каждая запись, что бы считать ее
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 02.04.2009, 22:22   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Вот тебе основная часть проги.

Код:
#include <iostream.h>
#include <conio.h>
#include <fstream.h>
#include <stdio.h>
struct student
{
int id;
int mark;
char sname[20];
};

void main()
{
int numer=0;
char name[20];
clrscr();
student students[2];
student urods[2];
for(int i=0;i<2;i++)
	{
    students[i].id=numer;
    numer++;
   cout<<"nazovite familiu studenta"<<endl;
   gets(students[i].sname);
   //students[i].sname=name;
   cout<<"postavte studentu ocenku"<<endl;
   cin>>students[i].mark;
   }

ofstream f1("students",ios::app, ios::binary);
f1.write((char *) &students, sizeof students);
f1.close();

ifstream f2("students",ios::app, ios::binary);
f2.read((char *) &urods, sizeof urods);

for(int i=0;i<2;i++)
	{
    cout<<"student nomer "<<urods[i].id <<endl;
   cout<<"s familiey "<< urods[i].sname<<endl;
   cout<<"imeet ocenku "<<urods[i].mark<<endl;

   }

f2.close();

getch();
}
Она просто заполняет структуру (точнее объект типа струтура), записывает ее в файл. Затем читает ее из файла, и выводит на экран.
Догадаешься, как сделать так, что бы двоешники и колышники не попадали в файл?
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
$I: автоматический контроль операций ввода-вывода. Викдон Паскаль, Turbo Pascal, PascalABC.NET 10 21.11.2008 20:45
перехват консольного ввода\вывода Артем5555555 Win Api 14 28.10.2008 23:20
класс ввода\вывода System::IO::File Selebro Общие вопросы C/C++ 1 18.10.2008 22:48
Си против Си++ - сис. ввода-вывода Sota Общие вопросы C/C++ 4 31.07.2007 17:52