Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа со строками, Получение пути к файлу 
V
    Опции темы
NOCaut
Дата 16.5.2011, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Вилетает ерор в tcsncpy_s.inl. Помогите найти ошибку. Спасибо

Код
  
   LPWSTR path_buffer;
   wchar_t drive[_MAX_DRIVE];
   wchar_t dir[_MAX_DIR];
   wchar_t fname[_MAX_FNAME];
   wchar_t ext[_MAX_EXT]; 
      
   path_buffer = L"c:\\roma\\box\\ddd\\vsdvd.4sh";
   _wsplitpath(path_buffer, L"", dir, L"", L"" );


Это сообщение отредактировал(а) NOCaut - 16.5.2011, 12:23
PM MAIL   Вверх
Alca
Дата 16.5.2011, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



Код

_wsplitpath(path_buffer, NULL, dir, NULL, NULL);


Добавлено через 55 секунд
http://msdn.microsoft.com/en-us/library/e7...(v=VS.100).aspx


--------------------
PM WWW ICQ Skype Jabber   Вверх
NOCaut
Дата 16.5.2011, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



спасибо

Это сообщение отредактировал(а) NOCaut - 16.5.2011, 13:43
PM MAIL   Вверх
NOCaut
Дата 16.5.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



как сложить строки dir и path?
PM MAIL   Вверх
bsa
Дата 16.5.2011, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



_wcscat
PM   Вверх
NOCaut
Дата 16.5.2011, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



wcscat - неработал. а wcscat непробивал

Решение:
Код

wchar_t * scat (wchar_t *d, wchar_t *s)
{
 wchar_t *r=(wchar_t*)calloc(wcslen(d)+wcslen(s),sizeof(wchar_t));
 wcscpy (r,d);
 wcscpy (r+wcslen(d),s);
 return r;
}


PM MAIL   Вверх
Alca
Дата 16.5.2011, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



Тебе что на чистом Си надо?


--------------------
PM WWW ICQ Skype Jabber   Вверх
NOCaut
Дата 16.5.2011, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



нет на с++
PM MAIL   Вверх
Alca
Дата 16.5.2011, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



так а че ты паришься с си-шными строка?
Вот, изучай: http://www.cplusplus.com/reference/string/string/

Добавлено через 3 минуты и 3 секунды
Код

LPWSTR path_buffer;
wchar_t drive[_MAX_DRIVE];
wchar_t dir[_MAX_DIR];
wchar_t fname[_MAX_FNAME];
wchar_t ext[_MAX_EXT]; 

path_buffer = L"c:\\roma\\box\\ddd\\vsdvd.4sh";
_wsplitpath(path_buffer, NULL, dir, NULL, NULL);

//как сложить строки dir и path?

std::wstring sRes = std::wstring(dir) + std::wstring(path_buffer);



--------------------
PM WWW ICQ Skype Jabber   Вверх
NOCaut
  Дата 16.5.2011, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Спасибо! но хотелосф на  без wstring  smile 

Это сообщение отредактировал(а) NOCaut - 16.5.2011, 19:30
PM MAIL   Вверх
bsa
Дата 16.5.2011, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



NOCaut, ты сказал на С++. std::wstring - это неотъемлемая часть стандартной библиотеки С++.
Ты знаешь, что приведенный тобой код не должен работать потому, что ты забыл выделить память под символ L'\0'. Далее, твой код неоптимален - вызываешь 2 раза wcslen для одной и той же строки, да и calloc лишний раз зануляет выделенную память.
Код
wchar_t* scat (const wchar_t *d, const wchar_t *s)
{
   const size_t dlen = wcslen(d);
   const size_t slen = wcslen(s);
   wchar_t *r = (wchar_t*)malloc((dlen+slen+1)*sizeof(*r));
   memcpy(r, s, slen*sizeof(*s));
   memcpy(r+slen, d, (dlen+1)*sizeof(*d));
   return r;
}

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.