ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Структуры и работа с ними
  #1  
Старый 23.02.2008, 21:51
ph0en1x
Познающий
Регистрация: 14.06.2006
Сообщений: 30
Провел на форуме:
170323

Репутация: 11
По умолчанию Структуры и работа с ними

Вот пишу лабораторку и мне необходимо записать структуру в файл, потом прочесть её и произвести поиск по отдельным перменным.
погите с записью (чтением) структуры в (из) файла
 
Ответить с цитированием

  #2  
Старый 23.02.2008, 21:54
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

write(дескриптор_файла, &структура, sizeof структура)
read(дескриптор_файла, &структура, sizeof структура)

вроде так.
 
Ответить с цитированием

  #3  
Старый 24.02.2008, 15:52
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

Цитата:
Сообщение от zythar  
write(дескриптор_файла, &структура, sizeof структура)
read(дескриптор_файла, &структура, sizeof структура)

вроде так.
CFile f;
CFileException e;

struct mt
{
....
....
} mtu;

f.write((char *)&mtu,sizeof(mt));

f.read((char *)&mtu,sizeof(mt));

Edited: Пива было много.... поэтому чипатал левой ногом.

Последний раз редактировалось Delimiter; 25.02.2008 в 00:11..
 
Ответить с цитированием

  #4  
Старый 24.02.2008, 15:56
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

давайте щас еще понтоваться кто как умееть писать в файл +)
пусть автор уточнит как он производит запись. но абстрактно это можно выразить так, как сказал zythar

это раз.. два: Delimiter, как ты собрался брать АДРЕС СТРУКТУРЫ? Поясни-ка поподробнее..
 
Ответить с цитированием

  #5  
Старый 24.02.2008, 16:26
ph0en1x
Познающий
Регистрация: 14.06.2006
Сообщений: 30
Провел на форуме:
170323

Репутация: 11
По умолчанию

Цитата:
Сообщение от _Great_  
давайте щас еще понтоваться кто как умееть писать в файл +)
пусть автор уточнит как он производит запись. но абстрактно это можно выразить так, как сказал zythar

это раз.. два: Delimiter, как ты собрался брать АДРЕС СТРУКТУРЫ? Поясни-ка поподробнее..
я сам толком не знаю как я произвожу запись
вобщем ситуация следующяя:
У меня есть структура
Код:
struct MYSTRUCTURE {
  	char city[20];
  	char otp[5];
  	int number;
  	char time[5];
  	int mest;
  	};
Мне нада ввести с терминала данные в елементы структуры и записать всё это безобразие в файл, таким образом чтоб я мог потом его
открыть и произвести поиск по елементам city и otp, запрос для поиска тоже должен вводится с клавиатуры.
Количество записей в файле должно быть произвольное. И желательно это всё запихнуть в одну программу т.е. сначала вводим эти записи потом какойнибудь стоп символ вводится, данные записываются, потом читаются и работа с поиском.

Последний раз редактировалось ph0en1x; 24.02.2008 в 16:34..
 
Ответить с цитированием

  #6  
Старый 24.02.2008, 17:33
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

ну хз.. структуру объявил, потом объяви переменную типа структуры:
struct MYSTRUCTURE foo;

присвой элементам структуры значения сам, в исходном файле, потом открой файл, и записивай в него или так как я сказал или как delimiter.
если все хорошо пойдет то тогда уже вводи значения елементов структуры из терминала.
 
Ответить с цитированием

  #7  
Старый 24.02.2008, 18:31
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

сохраняй каждый элемент структуры с новой строки и все...
 
Ответить с цитированием

  #8  
Старый 24.02.2008, 18:46
ph0en1x
Познающий
Регистрация: 14.06.2006
Сообщений: 30
Провел на форуме:
170323

Репутация: 11
По умолчанию

Цитата:
Сообщение от nc.STRIEM  
сохраняй каждый элемент структуры с новой строки и все...
хм и что это получится если записей будет много?

Вот так получилось, но не знаю можно ли так:
Код:
#include <iostream.h>
#include <string.h>
#include <stdio.h>
struct MYSTRUCTURE {
	char city[20];
	char otp[5];
	int number;
	char r[5];
	int mest;
	};

main() {
    MYSTRUCTURE MyStructure;
	strcpy(MyStructure.city, "Moscov" );
	strcpy(MyStructure.otp, "10:25");
	strcpy(MyStructure.r, "16:25");
	MyStructure.mest = 20;
	MyStructure.number =1112;
	freopen("aeroflot.txt", "rt", stdout);
	cout << "|";
	cout << MyStructure.number;
	cout << "|";
	cout << MyStructure.city;
	cout << "|";
	cout << MyStructure.otp;
	cout << "|";
	cout << MyStructure.r;
	cout << "|";
	cout << MyStructure.mest;
	cout << "|" << endl;
	return 0;
	}
П.С. чуть упростил задачю т.к. меня интересует пока только запись в файл ввод переменных через присваивание, и копирование.

Последний раз редактировалось ph0en1x; 24.02.2008 в 19:14..
 
Ответить с цитированием

  #9  
Старый 24.02.2008, 19:12
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

все норм получиться, каждый элемент с новой строки, и так любое кол-во. Загружать также. Все элементарно
 
Ответить с цитированием

  #10  
Старый 24.02.2008, 19:55
ph0en1x
Познающий
Регистрация: 14.06.2006
Сообщений: 30
Провел на форуме:
170323

Репутация: 11
По умолчанию

Код:
#include <iostream.h>
#include <fstream.h>
struct MYSTRUCT {
	char city[20];
	char otp[5];
	int number;
	char r[5];
	int mest;
	};
int main(void){
    int i;
    struct MYSTRUCT s[200];
    ofstream mystream_out("aeroflot.txt", ios::in|ios::out);
    if (!mystream_out)
    {
    cout << "Cannot open file.\n";
    return 1;
    }
    else{
for(i=1; i<=2; i++){
    cout<< "\nZapus" <<("%2.d",i);
    cout<< ("\nCity"); cin >> s[i].city;
    }
    mystream_out.write((char*)s, sizeof(s));
    mystream_out<< &s <<endl;
    mystream_out.close();
    }
return 0;
}
чуствую что гдето ошибся ибо открыв файл получаю вместо двух слов много сиволов разных.
Это так и должно быть или я всётаки ошибся?

Последний раз редактировалось ph0en1x; 24.02.2008 в 19:59..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа в Mc :) Или какаие клавиши давить... xcedz Болталка 2 03.02.2008 16:51
Работа на дому xmensuperman О Работе 5 11.01.2008 20:15



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ