|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2010, 00:37 | #1 |
Форумчанин
Регистрация: 07.10.2008
Сообщений: 213
|
string vs. char
Вот отрывок из кода, где происходит открытие файла:
Код:
Почему если указывать константу, например Код:
подскажите, пожалуйста, решение данной проблемы... Последний раз редактировалось tools; 22.12.2010 в 00:42. |
22.12.2010, 00:39 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
22.12.2010, 00:49 | #3 |
Форумчанин
Регистрация: 07.10.2008
Сообщений: 213
|
Пепел Феникса, таким образом тоже работает, но меня интересует первый случай, то есть когда у меня путь хранится в переменной типа char , а мне его нужно в string переделать...
|
22.12.2010, 00:51 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
22.12.2010, 01:02 | #5 |
Форумчанин
Регистрация: 07.10.2008
Сообщений: 213
|
а без указателей нельзя преобразовать переменную типа char в string ??
Т.к. я описал ее как char path_to_file[256]; и используется она не единожды и не хотелось бы менять объявление. |
22.12.2010, 01:08 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
у вас та переменная константная или заполняется пользователем?
может просто терминальный ноль теряется иль еще чтото? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
22.12.2010, 01:12 | #7 |
Форумчанин
Регистрация: 07.10.2008
Сообщений: 213
|
заполняется пользователем, ноль не теряется, я его доставляю дополнительно в конец строки
Если быть точнее, то я пробую работать с сокетами (по протоколу UDP) и у меня этот путь к файлу передается с помощью recvfrom как строка типа char от клиента серверу. Последний раз редактировалось tools; 22.12.2010 в 01:20. |
22.12.2010, 01:39 | #8 |
Форумчанин
Регистрация: 07.10.2008
Сообщений: 213
|
Вот скрин с трассировки, после выполения оператора
std::string filename(path_to_file); Затем идет строка std::ifstream ifs(filename.c_str()); Вот после нее идет перход на if, чего быть по идеи не должно... В чем может здесь быть загвоздка? |
22.12.2010, 01:42 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
посмотрите внимательно на то что у вас в массив еще попадает символ 10.(перед 0)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
22.12.2010, 01:49 | #10 |
Форумчанин
Регистрация: 07.10.2008
Сообщений: 213
|
точно, верно подметили. Я использовал в клиенте для чтение строки fgets, наверное надо поменять на gets его, чтобы не читал символ '\n'.
и если я буду использовать gets, то уже не надо будет '\0' в конец доставлять, я правильно понимаю? Нет, для функции gets тоже пришлось добавлять '\0' в конец массива символов и проблема решилась. Спасибо Вам, Пепел Феникса, за вашу внимательность! В итоге получаем строку std::ifstream ifs(path_to_file); без всяких преобразований. Последний раз редактировалось tools; 22.12.2010 в 02:16. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
String To Char | RIO | Общие вопросы C/C++ | 2 | 22.06.2010 00:30 |
char to string!!! | marselik | Общие вопросы C/C++ | 3 | 01.06.2010 13:01 |
String и char | Julinja | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 03.01.2009 12:10 |
из string в char | ShenDy | Общие вопросы C/C++ | 1 | 14.04.2008 11:01 |
char->string | eds | Общие вопросы .NET | 1 | 28.11.2007 17:22 |