Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Типизированые файлы (бинарные)

4.0K
11 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
Паскаль:
Код:
type OBJECT = record
   i:int;
   s1, ... sn: string;
   ...
   f:float;
  end;

OBJECTfile= file of OBJECT;

var
  File: OBJECTfile;


создает бинарные файл структур даного типа.

[SIZE="2"][COLOR="DarkRed"]Есть ли подобное в с++?[/COLOR][/SIZE]
4.0K
12 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
Оригинал программы.


Код:
class Test
{
public:
  int Right;
  string q1;
  string q2;
};

Test *Arr[100];  // массив указателей на структуры
  ...
Arr= new Test;
  ...
fstream out; out.open(FileName.c_str(), ios::out);
for (int i = 1; i<=Pages; i++)
{
SaveToF(i, &out);
}
  ...
void __fastcall SaveToF (int i, fstream* out)
{ [FONT="Arial"]//разные методы записи, коды ошибок
out<<Arr->q1<<'\n';      [COLOR="Gray"]//illegal use of pointer[/COLOR]
out<<*Arr->q2<<'\n';      /[COLOR="Gray"]/E2093 'operator*' not implemented in type 'string' for arguments of the same type
[/COLOR]
Test a;
a=*Arr;
out<<a->q1<<'\n';   /[COLOR="Gray"]/E2288 Pointer to structure required on left side of -> or ->*[/COLOR]
[/FONT]

}


Как его всё таки записать?
3
12 мая 2007 года
Green
4.8K / / 20.01.2000
Цитата: ApokALEXIS

 
Код:
void __fastcall SaveToF (int i, fstream* out)
{
out<<Arr->q1<<'\n';      [COLOR="Gray"]//illegal use of pointer[/COLOR]


Коли ты передаешь fstream через указатель, то указатель то надо разыменовывать. Компилятор тебе об этом и сообщил.

4.0K
12 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
*out<< ... ;

Точно! сам не додумался бы. Спасибо!
4.0K
13 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
 
Код:
string = "несколько слов через пробел" ;
out<<string;

in>>string;

//string == "несколько";

Как заставить читать всю строку полностью?
Именно со string!!
//in.getline( ... ) требует char*.
out в файл пишет всё полностью.
3
13 мая 2007 года
Green
4.8K / / 20.01.2000
std::getline
4.0K
14 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
Цитата: ApokALEXIS

in.getline( ... ) требует char*.



!!!
или можно ещё как-то?
обьясни как.

3
14 мая 2007 года
Green
4.8K / / 20.01.2000
Будь внимательнее.
Не метод basic_istream::getline, а функция std::getline.
Код:
template<class CharType, class Traits, class Allocator>
   basic_istream<CharType, Traits>& getline(
      basic_istream<CharType, Traits>& _Istr,
      basic_string<CharType, Traits, Allocator>& _Str
);

template<class CharType, class Traits, class Allocator>
   basic_istream<CharType, Traits>& getline(
      basic_istream<CharType, Traits>& _Istr,
      basic_string<CharType, Traits, Allocator>& _Str,
      CharType _Delim
);
4.0K
17 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
Можно ли Fstream работать с файлами по сети?
Хотябы считывать?

Сеть ничем не защищена, папка со считываемым файлом открыта для сети (школьная сетка)

Былоб хорошо тестовые файлы прямо с учительского компа хавать:cool:
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог