Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Насчет курсов по C++  (Прочитано 70384 раз)
0 Пользователей и 7 Гостей смотрят эту тему.
Jarlyk
Помогающий

ee
Offline Offline

« : 05-06-2004 12:29 » 

Я тут начал изучать си++, перешел к уроку, где предлагается создать свою первую прогу на сях. Так вот, у меня ошибки начались прям с первой же строки, вот с этой:
#include<iostream.h>

Когда я запустил прогу на проверку на ошибки, то она выдала сообщение:
unable to open include file ´iostream´

а потом пошли фаталы по последующим строкам. Типа, не может создать там чего-то в папке TEMP

Что делать?
Записан

Бедные маленькие мышки плакали и кололись,
но все равно продолжали жрать кактус.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 05-06-2004 13:08 » 

В Виндовсе дай на поиск библиотеки iostream.h. Запомни тот католог, где Виндовс нашел эту библиотку. Пропиши в настройках компилятора этот каталог. Также просмотри каталог TEMP файлов. И пропиши его. Если он не существует на диске физически. Создай.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Jarlyk
Помогающий

ee
Offline Offline

« Ответ #2 : 05-06-2004 13:48 » 

Спсибо, теперь все заработало. Начал проверять все папки в настройках, оказалось, что прога была настроена на расположение на диске С:
А я ее на D: запихнул... Ну и папку отдельно создать пришлось, как ты сказал.
Еще раз спасибо! Улыбаюсь
Записан

Бедные маленькие мышки плакали и кололись,
но все равно продолжали жрать кактус.
Olegator
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 16-06-2004 23:25 » 

Здравствуйте
Я только что зарег-ся
Скажите пож-та когда начало курсов
Записан
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #4 : 17-06-2004 05:34 » 

Olegator, Курсы уже идут давненько  Ага  Придётся догонять  Отлично  Все предыдущие уроки есть сдесь : https://club.shelek.ru/view.php
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Jarlyk
Помогающий

ee
Offline Offline

« Ответ #5 : 18-06-2004 11:05 » 

<b>Люди! У мя проблемя с C++. Поможите, пожалуйста!</b>
Короче, у меня bcw.exe не пишет русские буквы, вместо них какие-то иероглифы, но когда запускаю на выполнение, то буквы идут нормальные, но почему-то не выводится на экран буква "Я". Че делать?
Записан

Бедные маленькие мышки плакали и кололись,
но все равно продолжали жрать кактус.
Jarlyk
Помогающий

ee
Offline Offline

« Ответ #6 : 18-06-2004 11:32 » 

хм... че за фигня? ХТМЛ включен, а тэги не понимает...
Записан

Бедные маленькие мышки плакали и кололись,
но все равно продолжали жрать кактус.
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 18-06-2004 12:58 » 

Jarlyk писал,
Цитата
у меня bcw.exe не пишет русские буквы, вместо них какие-то иероглифы

Консоль работает с кодировкой CP866, а Windows c WIN1251, поэтому так и получается. Если настроешь Options|Preferences|Editor на Courier Cyr или Aryal Cyr, то в тексте программы будет по русски а при выводе на консоль - "иероглифы". Вывод: Пиши в ВС.ЕХЕ  
Цитата
хм... че за фигня? ХТМЛ включен, а тэги не понимает...

Теги оформляй в прямоугольных "[]", а не в угловых "<>" скобках.
Записан

С уважением, Oldy.
Jarlyk
Помогающий

ee
Offline Offline

« Ответ #8 : 18-06-2004 15:26 » 

Цитата

Вывод: Пиши в ВС.ЕХЕ

А в bc.exe еще хуже - он вообще на русский не переключается  Жаль
Перепробовал комбинации клавиш: Ctrl+Shift, Alt+Shift и стандартный досовский л.Shift+п.Shift
Все равно никакого толку  Так больше нельзя...
Записан

Бедные маленькие мышки плакали и кололись,
но все равно продолжали жрать кактус.
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 18-06-2004 15:33 » 

Опс...
Давай с начала: Что за ОС (WIndows какой?), приведи текст файлов config.sys  и autoexec.bat.
Может статься, что у тебя этот момент (кодовая страница, и раскладка клавиатуры) не настроен должным образом.
Записан

С уважением, Oldy.
Jarlyk
Помогающий

ee
Offline Offline

« Ответ #10 : 18-06-2004 17:06 » new

Нууу... Тогда слушай. Вернее читай Улыбаюсь :
У меня Windows 98 SE

Содержимое файла config.sys:
DEVICE=C:\WINDOWS\setver.exe
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=007,866,C:\WINDOWS\COMMAND\country.sys
DEVICEHIGH=C:\WINDOWS\COMMAND\DRVSPACE.SYS /MOVE

Содержимое файла autoexec.bat:
@D:\PROGRA~1\GRISOFT\AVG6\bootup.exe
mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi)
mode con codepage select=866
keyb sv,,C:\WINDOWS\COMMAND\keyboard.sys
Записан

Бедные маленькие мышки плакали и кололись,
но все равно продолжали жрать кактус.
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 18-06-2004 19:07 » 

Цитата

keyb sv,,C:\WINDOWS\COMMAND\keyboard.sys


keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys
Записан

С уважением, Oldy.
Jarlyk
Помогающий

ee
Offline Offline

« Ответ #12 : 18-06-2004 20:16 » 

Перезагружать не надо? так вообще сделал, запустил сам файл, но русского все равно нет
Записан

Бедные маленькие мышки плакали и кололись,
но все равно продолжали жрать кактус.
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 19-06-2004 04:33 » 

Перезагружаться надо.
Переключение клавиатуры в режиме DOS:
Русская - Right Ctrl+Shift
Английская - Left Ctrl+Shift
Записан

С уважением, Oldy.
Jarlyk
Помогающий

ee
Offline Offline

« Ответ #14 : 21-06-2004 08:47 » 

Во спасибо!!! Теперь все работает Улыбаюсь
Записан

Бедные маленькие мышки плакали и кололись,
но все равно продолжали жрать кактус.
fess_kr
Гость
« Ответ #15 : 15-08-2004 19:46 » 

Кто-нибудь помогите достать хороший учебник по C++Builder или хотя бы подскажите , как переводить типы данных из одного типа в другой. Пример:
AnsiString в String;
Double в Integer;
Char в String;
Char в AnsiString;
Char в Integer;
Char в Double;
И конечно наоборот!
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 16-08-2004 13:46 » 

fess_kr, Немедленно читать Help.  Types, atoi(), atof()
Записан

С уважением, Oldy.
KerLaede
Гость
« Ответ #17 : 16-08-2004 20:31 » 

Кто-нибудь знает как из программы можно было запустить другой *.exe файл :?:
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 17-08-2004 04:49 » 

KerLaede, при помощи функций АПИ CreateProcess() или ShellExecute()
Записан

С уважением, Oldy.
KerLaede
Гость
« Ответ #19 : 17-08-2004 09:36 » 

Oldy, спасибо!
Записан
KerLaede
Гость
« Ответ #20 : 17-08-2004 09:42 » 

А еще вопросик! Как занести и вытащить текст в программе?
FileOpen("...", 1);
FileRead(1, &buff, ...);
FileWrite(1, &buff, ...);
FileClose(1);

Вот эти операции что-то не работают! А FileClose(); вообще ошибку выдает.
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #21 : 17-08-2004 10:11 » 

Цитата
FileClose(1);
Вот эти операции что-то не работают! А FileClose(); вообще ошибку выдает.

Что за еденица присутствует в качестве параметра? По моему там должен быть "Handle" открытого файла.
Записан

С уважением, Oldy.
KerLaede
Гость
« Ответ #22 : 17-08-2004 12:09 » 

Цитата
Что за еденица присутствует в качестве параметра? По моему там должен быть "Handle" открытого файла.


Что такое Handle? И что там писать вообще надо, если я пытаюсь открыть файл
"D:/temp.txt"?[/quote]
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #23 : 17-08-2004 16:34 » 

Эти функции вообще откуда? Что за язык программирования вы используете?
Ни в BC++ 3.1 ни в VC++ 6.0 таких функций не нашел.
Записан

С уважением, Oldy.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #24 : 17-08-2004 18:41 » 

Да и на Паскаль как-то не похоже   Вот такой я вот
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
KerLaede
Гость
« Ответ #25 : 17-08-2004 20:20 » 

Это С++Builder 6. Когда консольную программу создаешь эти функции есть и даже никакие файлы с помощью #include потключать не надо!
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #26 : 17-08-2004 21:17 » 

KerLaede, я в билдере не работаю - но исходя из "общей теории работы в виндовс", заявляю следующее.

1. Все эти функции вероятно аналоги CreateFile WriteFile ReadFile CloseFile сандартного API. Кстати это и объясняет, что их не надо никаким образом подключать так как они автоматом подключаются вместе с самим API Улыбаюсь в стандартном создании проекта, я так полагаю.

2. В том виде в котором ты их используешь они работать не будут.

3. HANDLE - некое число чаще 4 байта в длину #define HANDLE DWORD

Для работы с этими функцияим адо понять идеологию работы с файлами.
Для этого не надо было писать в тему Насчет курсов а надо было создать отдельную, я это счас и сделал.

Теперь об идеологии.

Открываю любой файл не зависимо от того, в каком языке, в какой оболочке разработки ты открываешь канал, который связывает твою программу с файлом. Это представлено в виде некоторой структуры в системе, из которой однозначно определяет, т.е. полностью уникально идентифицирует для программы сам файл - это HANDLE.

HANDLE чаще всего возвращается функцией CreateFile в данном случае видимо FileOpen когда соответствующая свзяка (канал) создаются впервые.
Происходит захват файла, после чего работая с файлом , читая записывая данные и закрывая файл ты должен обращаться к файлу не по имени, а именно указывая HANDLE полученный при создании канала, указывая программе какой из каналов на файл использовать. Ведь в программе открывать одновременно можно много файлов.

Естественно что FileClose(1) - это полный идиотизм - извини, но что ты таким образом вообще пытаешься закрыть??? HANDLE за номером 1 естественно в твоей программе не существует, вот и вылезает ошибка.
Вообще удивитеьно что тебе не выдали ошибки и остальные функции, ведь судя по твоим единичкам в конце каждого из них, HANDLE у тебя точно такой же как и там
Цитата
FileRead(1, &buff, ...); FileWrite(1, &buff, ...);



  Здесь была моя ладья...
Грустно то, что и вопрос поставлен неверно. И вероятно Help вообще не прочитан, ибо там сказано все настолько прозрачно, что ужас.
Лучше всего звучал бы правильный вопрос - поясните как работать с файлами и что такое HANDLE..

Извини, я не хотел тебя обидеть, брюзжу....

Итак дабы вся эта бодяга работала нормально, надо указывать верные параметры.
Не думаю, что бы там все так отличалось от классического API, поэтому приведу пример...

HANDLE hFile; // тот самый указывает файл.
unsigned char buff[] = "Write File"; .. текст для записи.
int length;  // длина записи - типа скока записать.
DWORD Tb; // Скока в натуре записалось - должен в иделе равняться после записи length

length = strlen(buff);

hFile = CreateFile("file_name", NULL, NULL, NULL, CREATE_ALWAYS,NULL);

// Все что я выставил в  NULL можно выставлять в нужные значения но в данный момент там проставятся условия по умолчанию от системы, что для единоличной работы с файлом более чем достаточно.
CRATE_ALWAYS - параметр сменный и в данный момент означает, что файл с таким именем даже если есть и полный данных будет создан заново и кто не спрятал данные то Майкрософт не виноват.

Список возможных параметров вот:
CREATE_ALWAYS
CREATE_NEW
OPEN_ALWAYS
OPEN_EXISTING
TRUNCATE_EXISTING

Описания тут: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/createfile.asp

Далее все просто.

if (hFile == INVALID_HANDLE_VALUE) {Произошла чудовищная ошибка}
else
{
Файл благополучно открыт стерт захвачен.

if (!WriteFile(hFile, &buff, length, &Tb, NULL)) {Опять апшиблись}
else{
// Записыали в файл.
}

if (!ReadFile(hFile,&buff,length,&Tb, NULL) {И снова апшибка}
else
{

// Прочитали из файла...

}

CloseFile(hFile);
// Закроли файл...

Вернее не столько файл сколько файл мы освободили, а вот закрывает его система, а мы описатель HANDLE освободили.

Хотя в этом примере мы ничерта не прочтем из файла, потому, что еще надо бы выставить указатель перед чтением на начало файла, но это уж ты сам найди, а то так не интересно Улыбаюсь но все же файл появится и даже запишется
}


В общем удачи...
И еще раз не обижайся на стиль - ничего личного....   Вот такой я вот  Ага  Отлично
Записан

А птичку нашу прошу не обижать!!!
KerLaede
Гость
« Ответ #27 : 18-08-2004 09:37 » 

Гром когда я пишу CreateFile(); у меня появляется потсказка, но там 7 параметров, а у вас 6 и я путуюсь куда же надо писать CREATE_ALWAYS. И я так и не понял что такое DWORD Tb;, и зачем он нужен?

Почему-то после проверки условия:

if (hFile == INVALID_HANDLE_VALUE) {Произошла чудовищная ошибка}

у меня всегда происходит эта чудовищная ошибка.  :?:   :!:
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #28 : 18-08-2004 10:14 » 

Вот из MSDN:

Цитата

HANDLE CreateFile(
  LPCTSTR lpFileName,                                       // pointer to name of the file
  DWORD dwDesiredAccess,                               // access (read-write) mode
  DWORD dwShareMode,                                    // share mode
  LPSECURITY_ATTRIBUTES lpSecurityAttributes, // pointer to security attributes
  DWORD dwCreationDisposition,                        // how to create
  DWORD dwFlagsAndAttributes,                         // file attributes
  HANDLE hTemplateFile                                     // handle to file with attributes to
                                                                       // copy
);
Записан

С уважением, Oldy.
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #29 : 18-08-2004 10:43 » 

KerLaede, прости дорогой - но ты издеваешься???
Тебе привели код, тебе привели все что только можно - расписали идеологию и ты не можешь понять, что HOW TO CREATE это и есть параметр который отрабатывает как открывать файл??? А остальное идет в NULL???

Цитата

DWORD Tb; // Скока в натуре записалось - должен в иделе равняться после записи length

И это тебе непонятно? Т.е. длина которую записать - это понятно, а скока в натуре после чтения записалось непонятно???


как-то странно - т.е. обычно человек заинтересован понять как, а ты явно заинтересован в том, что бы тебе все все сделали, а ты скопировал код - не так не пойдет....

А файл который откывается - должен еще записываться не так "D:/temp.txt", ва вот так "D://temp.txt"
Записан

А птичку нашу прошу не обижать!!!
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines