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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2009, 22:13   #1
Lazio
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 113
По умолчанию Форматный ввод/вывод

Проблема такая сделал прогу (мини-БД) для записи значений в фаил, всё норм записываются, однако другой программой считать данные из фаила в окно программы не могу, а также не понимаю как ставить разделители полей и ещё после всего этого хотелось бы чтобы выводящее окно (второй проги) сортировала полученные записи по полю surname вот код:
Код:
void main(void)
{
	FILE *file;
char* file_name = "file.txt";
char surname[15];
char tel[7];
char city[15];
char street[12];
char dom[10];
char kvart[10];                 


file = fopen (file_name, "w");

int i,k;
k=3;
for (i=1; i<=k; ++i)
{
	scanf("%s %s %s %s %s %s", surname, tel, city, street, dom, kvart);
	fprintf(file,"%s %s %s %s %s %s", surname, tel, city, street, dom, kvart);
}
fclose (file);
тут я чето мутил для считывания

Код:
file=fopen(file_name, "r");
printf(surname, tel, city, street, dom, kvart,"%s %s %s %s %s %s",);//
cout<<surname, tel, city, street, dom, kvart,"%s %s %s %s %s %s",<<surname<<endl;
fclose(file);

Последний раз редактировалось Lazio; 02.03.2009 в 22:43.
Lazio вне форума Ответить с цитированием
Старый 02.03.2009, 23:38   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

читай данные с помощью fscanf()

создай структуру
Код:
struct data {
char surname[15];
char tel[7];
char city[15];
char street[12];
char dom[10];
char kvart[10];      
} DATA;
объяви массив этих структур DATA *sData=new DATA [n] и заполняй их данными
при сортировке по какому либо полю можно так делать

Код:
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(strcmp(DATA[i].surname,DATA[j].surname)>0)
         {
               //меняеш их
         }
counter вне форума Ответить с цитированием
Старый 03.03.2009, 11:19   #3
theos
Форумчанин
 
Аватар для theos
 
Регистрация: 10.12.2007
Сообщений: 158
По умолчанию

Цитата:
Сообщение от counter Посмотреть сообщение
создай структуру
+1

У Вас все данные статические. Так что с таким подходом Вы сможете использовать бинарный ввод/вывод в файлы и вообще не заморачиваться насчёт разделителей. (этот момент могу пояснить, если Вы не знаете, но где-то на форуме это уже было)

А так же можно при сортировке легко менять элементы местами обычным memcpy'ем )))
theos вне форума Ответить с цитированием
Старый 03.03.2009, 15:18   #4
Lazio
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 113
По умолчанию

был бы очень признателен если бы кто нибудь на примере показал как это реализовывается ну попроще что нибудь ввести форматно фамилии и имена типа Козлов Алексей, Иванов Сергей и отсортировать их по фамилии например. вот только без разделителя мне никак такое уж задание , а что такое этот разделитель я так и не понял (ятак думаю что то вводится в форматный ввод, чтобы например 43-ааа-ллл читал по отдельности)

вобщем кто поможет пишите ну или хотя бы где почитать про это можно подскажите
Lazio вне форума Ответить с цитированием
Старый 03.03.2009, 19:29   #5
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

тут задача со структурами и еще какаято (компилил Borland 3.1)

вдруг пригодится...
Вложения
Тип файла: rar программирование2.rar (362.9 Кб, 10 просмотров)
counter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод и вывод Mihael-Vlz Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2009 18:00
Файловый ввод/вывод -=$V=- Общие вопросы C/C++ 8 13.12.2008 21:11
файловый ввод/вывод kot111 Общие вопросы C/C++ 1 04.02.2008 17:45
Асинхронный ввод/вывод Pblog Обсуждение статей 0 27.05.2007 02:13