![]() |
|
Модераторы: xvr |
![]()
|
|
| Sollo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.2.2006 Репутация: нет Всего: нет |
У меня есть такая проблема ... я читаю из сокета в буфер после чего мне нужно по двое точию разбить содержимое буфера в две переменные. и вывести их на екран ..... и у меня ничего не получаеться или я просто не умею пользоваться printf . содержимое буфера следуйщее: www.mine.ru:bplace1
Подскажите плизз очень надо ... у меня уже голова просто болит второй день не одной путной функции для вывода подобрать не могу. потому что до етого всё время в Винде по Винду писал там ето ращз плюнуть.... а тут сума схожу !! =( Хелп |
|||
|
||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
выведи с помощью puts если сомневаешься в printf. а еще лучше проследи в дебагере.
PS. посмотри strtok для разделения строки -------------------- Бонифаций. |
|||
|
||||
| SergeanTSID |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 12.1.2006 Где: Беларусь, Брест Репутация: нет Всего: нет |
Абру кадабру выводит потому что нет завершающего строку нуля.
Попробуй такой вариант.
Это сообщение отредактировал(а) SergeanTSID - 11.2.2006, 16:07 |
|||
|
||||
| Бонифаций |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
на самом деле вариантов много. Например
или
-------------------- Бонифаций. |
||||
|
|||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
функция strtok заманчива, но уж очь чревата последствиями: человек через сокет получает. a strtok() известен своей любовью помогать черношапым крепышам.
думаю стоит на самом деле запустить gdb... и посмотреть что же там приходит. скорее всего окажется, что приходит либо UNICODE либо не перевели в сетевой поорядок буффер перед отсылкой, и после получeния ( htons(), ntohs() и т.д. ) -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Sollo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.2.2006 Репутация: нет Всего: нет |
на самом деле я решил ету проблему с помощью strcpy но теперь появилась друга проблема .... =(((((
мне нужно можно так сказать путь создать соединив ето всё .... в C++ Builder всё просто создал переменную AnsiString и клей в неё что хочешь а под Юнихом немогу понять как мне ето сделать ! Ребята хелп кто знает что у меня не так ! |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
извини, но дебажить это программу видимо придется тебе.
в gdb, на клиенте: поставь брейк-пойнт после получения (rcv(), или read()) break <номер строки> запусти прогу: run и жди на сервере, поставь брейк-пойнт до отсылки (send(), или write()) запускай, посмотри что сидит в буффере на винде. потом запусти продолжение. и иди на клиент. там тебя ждет твой буффер после прогулки по сети. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Sollo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.2.2006 Репутация: нет Всего: нет |
Спасибо за совет. Я точно знаю что у меня в буфере .... но вопрос не в етом я по Линух никогда не писал и немогу понять каким образом мне соеденить две переменные типа char [20] в одну переменную типа char [50]
|
|||
|
||||
| Adil' |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: нет Всего: 15 |
"соединить две переменные в одну" не получится. Можно только скопировать содержимое одного массива в другой, и добавить содержимое третьего, для си-шных строк можно так:
-------------------- Удачи |
|||
|
||||
| Sollo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.2.2006 Репутация: нет Всего: нет |
Хорошо а такой вопрос а можно как то проверить в какой кодировке символы находяться в буфере ?
|
|||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: нет Всего: 10 |
Отправитель может проставлять кодировку. Иначе - пиши "интеллектуальную проверку", напиши словарик для разных кодовых таблиц и отыскивай соответствия или несоответствия. Не забудь о мультибайтовых кодировках.
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |