Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Вопрос по ASCII/C++  (Прочитано 1987 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Callidus Furo

  • Автор темы
  • Участник
  • *
  • Сообщений: 125
    • Просмотр профиля
Вопрос по ASCII/C++
« : 03 Март 2010, 21:22:00 »
Здравствуйте друзья!

Столкнулся с такой проблемой, что нужно реализовать функцию, в которую в качестве аргумента передаю цифру, а функция возвращает ее ASCII символ.
Например: предаю 5, а обратно получаю #

Проблем с функциями нет, я вот только не помню как это делается, то ли у переменной свой тип, толи какая то еще функция используется. Освежите пожалуйста мою память или подскажите в каком направлении рыть.

Заранее спс  :)
Ubuntu 10.10 x32 - home desktop
Ubuntu 10.10 x32 - job

Оффлайн yaromir

  • Активист
  • *
  • Сообщений: 670
    • Просмотр профиля
Re: Вопрос по ASCII/C++
« Ответ #1 : 03 Март 2010, 22:27:14 »
Присваиваете переменной типа char значение целочисленной константы и выводите.
#include <iostream>

int main() {
//35 - код символа '#' в таблице ASCII.
char c = 35;
std::cout << c << std::endl;
return 0;
}

Вывод:
#

http://ascii.org.ru/ascii.pdf

P.S. Надо писать с использованием utf-8 . ;) Еще в 1995 году к C89 добавили все, что касается wchar_t . На дворе 2010 год, а большинство программистов до сих пор это не осилило. :(
« Последнее редактирование: 06 Март 2010, 00:41:57 от yaromir »

Оффлайн Callidus Furo

  • Автор темы
  • Участник
  • *
  • Сообщений: 125
    • Просмотр профиля
Re: Вопрос по ASCII/C++
« Ответ #2 : 03 Март 2010, 22:47:23 »
Присваиваете переменной типа char значение целочисленной константы и выводите.
#include <iostream>

int main() {
char c = 35; //Код символа '#' в таблице ASCII.
std::cout << c << std::endl;
return 0;
}

Вывод:
#

http://ascii.org.ru/ascii.pdf

P.S. Надо писать с использованием utf-8 . ;) Еще в 1995 году к C89 добавили все, что касается wchar_t . На дворе 2010 год, а большинство программистов до сих пор это не осилило. :(


Спасибо большое!

Я исправлюсь  :)
Ubuntu 10.10 x32 - home desktop
Ubuntu 10.10 x32 - job

Оффлайн yaromir

  • Активист
  • *
  • Сообщений: 670
    • Просмотр профиля
Re: Вопрос по ASCII/C++
« Ответ #3 : 06 Март 2010, 00:43:15 »
Не за что. ;)
Исправляйтесь - Откройте для себя wchar_t.

Оффлайн cfg

  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Re: Вопрос по ASCII/C++
« Ответ #4 : 08 Март 2010, 22:43:02 »
У меня тоже возник вопрос... Мне нужно он символьно считать файл:
while(filein.get(ch))
{
}
Но проблема в том что объект get работает только с char, не подскажите что делать?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Вопрос по ASCII/C++
« Ответ #5 : 09 Март 2010, 12:39:26 »
Код: Text
  1. Привет, cfg!
  2. Это тебе в кодировке UTF-8 написано,
  3. а читает в широких символах!
  4.  

Код: Text
  1. /*
  2.  * File:   main.cpp
  3.  * Author: yurik
  4.  *
  5.  * Created on 9 Март 2010 г., 16:24
  6.  */
  7.  
  8. #include <cstdlib>
  9. #include <clocale>
  10. #include <wchar.h>
  11.  
  12.  
  13. #include <iostream>
  14. #include <fstream>
  15. #include <locale>
  16. /*
  17.  *
  18.  */
  19. int main(int argc, char** argv) {
  20.  
  21.     std::setlocale(LC_ALL, getenv("LANG"));
  22.     std::locale loc(getenv("LANG"));
  23.     std::wcout.imbue(loc);
  24.  
  25.     std::wifstream file("input.txt");
  26.     file.imbue(loc);
  27.  
  28.     if (!file) {
  29.         std::wcerr << L"Ошибка открытия файла!" << std::endl;
  30.         return (EXIT_FAILURE);
  31.     }
  32.  
  33.     wchar_t ch;
  34.     while (file.get(ch))
  35.         std::wcout << ch;
  36.  
  37.     std::wcout << L"И печатает, кстати, тоже широкими символами" << std::endl;
  38.  
  39.     return (EXIT_SUCCESS);
  40. }
  41.  

Ключевое здесь std::wifstream
« Последнее редактирование: 09 Март 2010, 12:43:12 от Yurror »

Оффлайн cfg

  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Re: Вопрос по ASCII/C++
« Ответ #6 : 09 Март 2010, 14:55:49 »
Yurror, большое спасибо.

 

Страница сгенерирована за 0.057 секунд. Запросов: 24.