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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2012, 22:45   #1
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию Структура в струтуру

Помогите с одним вопросом. Как скопировать одну структуру в другую. Они абсолютно одинаковые.
Код:
struct sport{char surname[15]; int numer; int points;} s;
struct temp{char surname[15]; int numer; int points;} t;

tf = fopen("file.dat","rb+");
system("cls");
fread(&s, sizeof(s), 1, tf);
printf("\n ********************************\n");
printf("\n Строка: "); scanf("%d", &a);

while(i<a){
		   printf(" *  %-15s %16d %23d * \n", s.surname, s.numer, s.points);
		   fread(&s, sizeof(s), 1, tf); 
		  
		   i++;
	  }
 printf(" *  %-15s %16d %23d * \n", t.surname, t.numer, t.points);
Из структуры s в структуру t.
Извините может за глупый вопрос, но я только учусь...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Stilet; 21.06.2012 в 07:40.
Bugrimov вне форума Ответить с цитированием
Старый 20.06.2012, 22:51   #2
pproger
C++ hater
Старожил
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Bugrimov
Код:
memcpy(&t, &s, sizeof(t));
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 20.06.2012, 23:41   #3
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Как можно реализовать замену строк (структур) в бинарном файле. например 2 запись с 3-ей.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 21.06.2012, 07:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Считать тертью и вторую записи, стать на позицию в файле, где начинается вторая и произвести запись туда третьей. После сразу произвести запись второй.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.06.2012, 18:59   #5
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Как это в программном виде выглядит?

Не представляю до конца как это будет.....
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Stilet; 21.06.2012 в 20:09.
Bugrimov вне форума Ответить с цитированием
Старый 21.06.2012, 20:08   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
struct sport{char surname[15]; int numer; int points;} s[2];
struct temp{char surname[15]; int numer; int points;} t;

tf = fopen("file.dat","rb+");
// Становимся на вторую запись
int RecNum=2; fseek(tf,sizeof(sport)*(RecNum-1),SEEK_SET);  
// Считываем ее а потом третью
 fread(&s[0], sizeof(sport), 1, tf); 
 fread(&s[1], sizeof(sport), 1, tf);
// Становимся опять на вторую для записи 
fseek(tf,sizeof(sport)*(RecNum-1),SEEK_SET);  
//Записываем сначала третью а потом вторую
 fwrite(&s[1], sizeof(sport), 1, tf); 
 fwrite(&s[0], sizeof(sport), 1, tf); 
// Записи  поменялись местами
Цитата:
struct temp
Зачем? Чем от sport отличается?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.06.2012, 20:46   #7
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Что-то вроде промежуточного звена для того чтобы в нем сохранить результат чтения из структуры, а затем вставить сохраненную структуру в нужном месте. Из Этого кода можно реализовать выбор нужных строк для замены?

Я имею в виду ввод с клавиатуры нужных строк и замена.

fseek(tf,sizeof(sport)*(RecNum-1),SEEK_SET); Объясни пожалуйста эту функцию.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Stilet; 21.06.2012 в 21:55.
Bugrimov вне форума Ответить с цитированием
Старый 21.06.2012, 21:12   #8
pproger
C++ hater
Старожил
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Bugrimov
Цитата:
Что-то вроде промежуточного звена для того чтобы в нем сохранить результат чтения из структуры, а затем вставить сохраненную структуру в нужном месте. Из Этого кода можно реализовать выбор нужных строк для замены?
он спрашивает, зачем ты 2 одинаковые структуры сделал. почему нельзя было написать
Код:
struct sport{char surname[15]; int numer; int points;} s, t;
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 21.06.2012, 21:19   #9
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Понятно. Как при помощи функции fseek перемещаться по файлу. Объясните пожалуйста....

Понятно..... Объясните пожалуйста как передвигаться по файлу при помощи функции fseek
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Stilet; 21.06.2012 в 21:53.
Bugrimov вне форума Ответить с цитированием
Старый 21.06.2012, 21:32   #10
pproger
C++ hater
Старожил
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Bugrimov
что понятно то? я вопрос задал. а ты отвечаешь вопросом на вопрос. таки вы евгей?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура minato91 Общие вопросы C/C++ 1 11.03.2011 00:12
структура на С++ yula92 Помощь студентам 0 25.05.2010 17:39
Структура DRELORD Помощь студентам 0 16.05.2010 22:53
Структура на С++ Darh Помощь студентам 3 16.12.2009 23:27
Структура IF в С++ lebrosha Помощь студентам 3 22.05.2009 00:09