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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2011, 12:59   #1
elf01
Пользователь
 
Регистрация: 18.11.2011
Сообщений: 34
По умолчанию почему здесь выкидуется ошибка на счёт c_str

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <windows.h>
#include <iostream.h>
#include <fstream.h>
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
const maxlen = 255;

char promt_oem[maxlen];
CharToOem("Введите производителя\n", promt_oem);
cout << promt_oem;

char str_oem[maxlen], str[maxlen];
cin >> str_oem;
OemToAnsi(str_oem, str);

char prokt_oem[maxlen];
CharToOem("Введите марку\n", prokt_oem);
cout << prokt_oem;

char stk_oem[maxlen], stk[maxlen];
cin >> stk_oem;
OemToAnsi(stk_oem, stk);

char proqt_oem[maxlen];
CharToOem("Введите год выпуска\n", proqt_oem);
cout << proqt_oem;

char stq_oem[maxlen], stq[maxlen];
cin >> stq_oem;
OemToAnsi(stq_oem, stq);

char progt_oem[maxlen];
CharToOem("Введите пробег\n", progt_oem);
cout << progt_oem;

char stg_oem[maxlen], stg[maxlen];
cin >> stg_oem;
OemToAnsi(stg_oem, stg);
}
const maxlen = 255;
struct sworker
{
char maker[maxlen];
char label[maxlen];
int year;
int km;
};

sworker arr[maxlen];
int worker_index = 0;

void readFormFile(char * fileName)
{
ifstream f;
f.open(fileName, ios::binary);
if (!f)
{
ShowMessage("Файл не найден");
return;
}
sworker worker;
worker_index = 0;
while(1)
{
f.read((char*)&worker, sizeof(worker));

if (f.eof())
break;

arr[worker_index] = worker;
worker_index++;
}
f.close();
}
void printArr()
{
for (int i = 0; i < worker_index; i++)
{
cout << i + 1;
cout << arr[i].maker;
cout << arr[i].label;
cout << arr[i].year;
cout << arr[i].km;
}
}
void readArr()
{

for (int i = 0; i < worker_index; i++)
{
strcpy(arr[i].maker, cout.c_str());
strcpy(arr[i].label, cout.c_str());
arr[i].year << cout.ToInt();
arr[i].km << cout.ToInt();
}
}
void saveToFile(char* fileName)
{
ofstream f;
f.open(fileName, ios::binary);
f.write((char*)arr, sizeof(sworker)*worker_index);
f.close();
}

//---------------------------------------------------------------------------
elf01 вне форума Ответить с цитированием
Старый 16.12.2011, 15:27   #2
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 14.10.2011
Сообщений: 267
По умолчанию

Вопрос не конкретен, но... для того, чтобы строку AnsiString STROKA разместить в массиве char *string нужно делать присвоение с префиксом: string = STROKA.c_str()
Может это Вам поможет.
nick42 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что здесь неправильного, в чем ошибка? monolit111 Общие вопросы C/C++ 6 29.09.2011 19:24
здесь есть программисты? Или здесь просто посмотрим. morekaifa Фриланс 1 08.04.2011 20:34
Почему здесь css не работает? Иришка753 Помощь студентам 1 03.04.2010 02:54
Где здесь ошибка? T-dayne Помощь студентам 3 23.02.2010 20:09
Подскажите,где у меня здесь ошибка!!НА СИ osichev Помощь студентам 11 07.06.2009 20:17