Prev Предыдущее сообщение   Следующее сообщение Next
Непрочитано 03.07.2007, 15:33   # 8
 
Регистрация: 08.11.2005
Сообщений: 1,123
Отправить сообщение для mil_alex с помощью ICQ
mil_alex вне форума
мелкое замечаньице: прежде чем в проге использовать argv[] с любым ненулевым индексом, надо проверить argc и убедиться, что оно больше единицы, т.е. када прога без параметров запускается, то argc=1 и argv[0] содержит путь к её файлу exe, а во всех остальных случаях надо проверить например что argc действительно ==2 и после этого пользоваться строкой из argv[1], иначе потенциальный баг будет.

соединить строки можно strcat(a, b) (вместо перегруженного оператора + ) и вроде в хелпе пишут что вот так
findfirst("c:\\dos\\test\\*.log", бла-бла
вроде можно и будет работать)

вообще я делал иначе, не уверен что так будет лучше - но оно работало))

берем каталог из командной строки и делаем туда cd то есть change dir. Он станет текущим, после чего там findfirst("*.log", бла-бла
Когда от findnext() выяснится что больше подходящих файлов нема, можно сделать cd обратно в каталог, откуда программа была запущена.

это см. про getcurdir() chdir() и их аналоги.


и еще, для пущей безопасности, лучше не использовать место в памяти, выделенное операционкой под массив параметров командной строки, в своих целях. То есть, не копировать "в" argv[] ничего и не присоединять к его имеющимся строкам другие строки.

т.е. вот как-то так:

char tmp[512];
strcpy(tmp, argv[1] ); // неплохо бы проверить длину строки и убедиться, что она влезет в 512 байт минус 1
strcat(tmp, "*.log"); // здесь то же самое, плюс надо проверить что последний символ в tmp это слэш (косая черта), и если юзер в командной строке указал путь без слэша в конце, добавить в tmp еще и слэш.
Цитата
вопрос по с++ | by TEMA4
 

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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


Часовой пояс GMT +4, время: 10:08.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot