![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.03.2013
Сообщений: 12
|
![]()
когда-то программировал на Delphi. скачал бесплатный Visual C++ 2008 и пытаюсь разобраться. для этого решаю программерские задачки. возникающие вопросы и проблемы собираюсь писать в эту тему.
-- вопрос 1-й создал консольное приложение с пререндеренным заголовком. параметры, с которыми запущена программа, оно помещает в массив типа _TCHAR: int _tmain(int argc, _TCHAR* argv[]) а я хочу, чтобы параметром передавалось имя файла, для дальнейшего его использования функцией fopen. что делать? -- вопрос 2-й вообще я хочу из файла занести данные в двумерный массив. в задаче сказано: "Пустая клетка представлена символом '.', закрашенная - символом '#'. Число строк и столбцов не превышает 500.". я так понимаю, что это означает, что мне придётся использовать массив 500х500. и я погуглил всякие тексты, но пока так толком и не понял: как мне эти данные занести в массив? |
![]() |
![]() |
![]() |
#2 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
ya2500
вопрос 1-й создал консольное приложение с пререндеренным заголовком. параметры, с которыми запущена программа, оно помещает в массив типа _TCHAR: int _tmain(int argc, _TCHAR* argv[]) а я хочу, чтобы параметром передавалось имя файла, для дальнейшего его использования функцией fopen. что делать? Все переданные аргументы ты найдешь в массиве argv. в переменной argc будет их количество первый аргумент - всегда имя запускаемой программы то есть при такой командной строке c:\bin\zzz.exe file.txt "1 2 3" argc = 3 argv[0] = "c:\bin\zzz.exe" argv[1] = "file.txt" argv[2] = "1 2 3" имя файла можно открыть функций _tfopen вопрос 2-й вообще я хочу из файла занести данные в двумерный массив. в задаче сказано: "Пустая клетка представлена символом '.', закрашенная - символом '#'. Число строк и столбцов не превышает 500.". я так понимаю, что это означает, что мне придётся использовать массив 500х500. и я погуглил всякие тексты, но пока так толком и не понял: как мне эти данные занести в массив? например завести массив unsigned char map[500][500] = {{0}}; дальше считывать туда посимвольно или сразу строками - зависит от формата данных
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 03.03.2013
Сообщений: 12
|
![]()
пишу file = fopen(argv[1], "w");
ошибка: error C2664: fopen: невозможно преобразовать параметр 1 из '_TCHAR *' в 'const char *' потому и спрашиваю. пишу file = _tfopen(argv[1], _T("w")); работает, но есть предупреждение о том, что эта функция не безопасна. так же как и функция _wfopen- её тоже пробовал. в-общем, всё в порядке, не считая одного варнинга. итого: большое спасибо, теперь понятно, как брать файл из параметров командной строки. |
![]() |
![]() |
![]() |
#5 | ||
Пользователь
Регистрация: 03.03.2013
Сообщений: 12
|
![]() Цитата:
Цитата:
генерация "лабиринта" готова и выглядит так: Код:
Последний раз редактировалось Stilet; 05.03.2013 в 09:24. |
||
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 03.03.2013
Сообщений: 12
|
![]()
С алгоритмом давно уже определился:
Цитата:
Последний раз редактировалось ya2500; 05.03.2013 в 13:37. |
|
![]() |
![]() |
![]() |
#7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ясно. Увы я лично с алгоритмами не дружу.
I'm learning to live...
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 03.03.2013
Сообщений: 12
|
![]()
ПРОБЛЕМА:
лабиринт генерится программой, приведённой выше. пытаюсь его считать и возникает какая-то "неустранимая ошибка" и Программа "[632] Maze_Path.exe: Машинный код" завершилась с кодом -1073740777 (0xc0000417). вот эта программа, считывающая массив: Код:
если запустить прогу не из среды, а непосредственно экзешник, то висит чёрное окошко и не убирается. ошибку не выдаёт. Последний раз редактировалось ya2500; 05.03.2013 в 10:10. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 03.03.2013
Сообщений: 12
|
![]()
добавил строку
if (file == NULL) return -1; после fopen, кое-что изменилось: теперь, будучи запущенной из среды, прога выдаёт -1. то есть, она не находит файл. скопировал input.txt и к файлам проги, и теперь, будучи запущенной из среды, прога тоже выдаёт чёрное окошко, которое не убирается. программа не завершается. такая вот мелкая доп инфа о том, где VC++ ищет файлы. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 03.03.2013
Сообщений: 12
|
![]()
разобрался. я позаимствовал из интернета не верную проверку конца файла, из-за чего цикл do ... while не мог завершиться.
исправил. теперь моя прога умеет считывать лабиринт из файла и записывать его в файл: Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
пытаюсь разобраться с pipe, (linux,c++) | Egyptorium | Общие вопросы C/C++ | 4 | 10.01.2013 02:12 |
Пытаюсь разобраться с API сайта (php+xml+soap) | woulf | PHP | 0 | 17.12.2012 03:05 |
пытаюсь разобраться | Кудаив | Помощь студентам | 6 | 01.05.2012 23:04 |
Пытаюсь разобраться в принципах куки! | Steh | JavaScript, Ajax | 2 | 02.02.2010 13:03 |
Пытаюсь разобраться в задании | fs444 | Microsoft Office Excel | 12 | 12.01.2010 12:57 |