| Yoko http://forum.yoko.com.ua/ |
|
| C++ и ASCII коды http://forum.yoko.com.ua/viewtopic.php?f=6&t=9400 |
Page 1 of 2 |
| Author: | Scripts Writer [ 2006-11-14 18:02:40 ] |
| Post subject: | C++ и ASCII коды |
Собственно вопрос в следущем. Есть код лаб. работы, которая берёт из файла данные и заносит их в таблицу в другой файл: Что берём: Code: ИСХОДНЫЕ ДАННЫЕ Что получается: Code: ИСХОДНЫЕ ДАННЫЕ Собственно код программы выводит шапку таблицы, затем содержимое через символы с кодом │ и в конце каждой строки с данными массива по идее ставит ║. Проблема вот в чём: Не выводит в файле эти 2а символа.В начале строки должен быть символ-он игнорируется пустым местом,между элементами и в конце также. Ни 10,ни 8, ни 16 ричный код этих символов С++ выводить не хочет, однако совсем остальным проблем нет, и забитую по стандарту шапку имеющую такие символы выводит без проблем. В чём мб проблема? Кодировка тхт файла может влиять или еще что? |
|
| Author: | Scripts Writer [ 2006-11-14 18:10:41 ] |
| Post subject: | |
Да простит меня цензура, но если подставить не эти 2 кода, а какое нибудь слово на их место то результат на лицо ... Code: ИСХОДНЫЕ ДАННЫЕ |
|
| Author: | DerMeister =) [ 2006-11-14 19:06:50 ] |
| Post subject: | |
Код выложи. Я тогда у папы спрошу. ЗЫ: А не перле нельзя? |
|
| Author: | Scripts Writer [ 2006-11-14 19:24:22 ] |
| Post subject: | |
Нет. Это моя лаб. работа. Сейчас код кину ... |
|
| Author: | Scripts Writer [ 2006-11-14 19:25:51 ] |
| Post subject: | |
Code: #include<fstream.h> |
|
| Author: | Savage [ 2006-11-14 19:47:12 ] |
| Post subject: | |
А если просто текстовый вариант этих символов печатать? |
|
| Author: | Scripts Writer [ 2006-11-14 19:52:39 ] |
| Post subject: | |
Если в коде программы напечатать эти символы ? -Через Alt + 186 (если не ошибаюсь) -выводится символ ║ и как строковая " ║ " в тхт всё равно не записывается =\ остаётся пустым местом. |
|
| Author: | DerMeister =) [ 2006-11-14 20:17:21 ] |
| Post subject: | |
Хммм: Code: fout<<'║' А так разве не работает? Если тебе чтото это скажет, то: Code: std::ofstream os("somefile.txt");
|
|
| Author: | Scripts Writer [ 2006-11-14 20:27:07 ] |
| Post subject: | |
Ничего не говорит =\ |
|
| Author: | Scripts Writer [ 2006-11-14 20:43:31 ] |
| Post subject: | |
Выводит следующим образом: " | " -как символ OR. Однако мне надо кодом символа. =\ В чём трабла мб?! =\ |
|
| Author: | Savage [ 2006-11-14 21:18:32 ] |
| Post subject: | |
Поговори об этом с ваше преподшей, и ей приятно будет что ктото пытается вкурить в ее предмет и тебе голову ломать над пустяками не прийдется. |
|
| Author: | DerMeister =) [ 2006-11-14 21:30:40 ] |
| Post subject: | |
Savage wrote: Поговори об этом с ваше преподшей, и ей приятно будет что ктото пытается вкурить в ее предмет и тебе голову ломать над пустяками не прийдется.
Не, не надо. Счас смастерим! Только я не понял, по заданию тебе обязательно коды ASCII использовать? |
|
| Author: | Scripts Writer [ 2006-11-14 21:41:08 ] |
| Post subject: | |
Отклонение в запятую карается смертью на защите лабараторной работе по её предмету. Если у неё в Методичке указаны коды: '\263' и '\272' значит так надо. Иначе не засчитает :\ я бы и рад самодеятельностью заняться-да не получится. |
|
| Author: | DerMeister =) [ 2006-11-14 21:44:17 ] |
| Post subject: | |
А попробуй '\xBA' на '\xA6' поменяь |
|
| Author: | Scripts Writer [ 2006-11-14 21:53:21 ] |
| Post subject: | |
Без результата |
|
| Author: | Savage [ 2006-11-14 21:58:00 ] |
| Post subject: | |
А может 0xBA надо? |
|
| Author: | Scripts Writer [ 2006-11-14 22:07:07 ] |
| Post subject: | |
Savage wrote: А может 0xBA надо?
Не. Код символа ║ -это (186)10 = (272)8 = (BA)16 Соответственно в дестеричной8 и 16 ричной системах счисления. 16рич вид такого кода это '\xHH' -где H это любое число от 0 до 16. Я пробовал 8,10 и 16 ричные коды записи этого символа в программе но ничего не выходило. Мб всё таки вопрос в кодировке или чём то еще, не относящемся к С++? |
|
| Author: | Savage [ 2006-11-14 22:34:38 ] |
| Post subject: | |
Лень ставить билдер. Наверняка какой-нить пустяк мешает те нормальн отдыхать |
|
| Author: | DerMeister =) [ 2006-11-14 22:46:21 ] |
| Post subject: | |
ты знаешь, тут кокраз в кодировке может быть дело. ║ - для меня это 2 вертикальные черты. Когда я делаю ctrl+c на форуме и ctrl+v в far'е, то там у меня получается одна вертикальная черта ( | ) , но не такая, как эта, а другая, но тоже одна и вертикальная. + в зависамости от кодировки (win/dos == win-1251/cp866) шестнадцатиричный код меняется. (A6/B3). Тобишь тебе сначало нужно понять в какой кодировке Си хочет видет код асции. А видеть он хочет коды в кодировке "по умолчанию". Для винды это (стандартно) win-1251. Вообще, попробуй "пройти" все возможные коды АСКИ и посмотри что тебе выведется на экран. Code: for (int i = 0; i <= 255; ++i) {----------------------------------------------------- Кстати, вместо Code: fout<<'\xa6'; можно Code: fout << char(0xa6); ----------------------------------------------------- А может ошибка вовсе не в кодировке? Может ты гже то код напутал? Мне вот это не нравится (я в си не разбираюсь): Code: { case 0: case 1: case 3: case 4: #почему тут 0,1,3,4 ? почему не по порядку?
ЗЫ: И помни, что 0xA6 и 0хА6 это совсем разные вещи!!!!! |
|
| Author: | omi4 [ 2006-11-15 00:53:34 ] |
| Post subject: | |
fprintf() не проще использовать? Пусть компилятор разбирается с кодами символов. |
|
| Page 1 of 2 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|