Форум программистов, компьютерный форум CyberForum.ru

ASCII код - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
BattleManLS
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 31
31.01.2014, 17:38     ASCII код #1
Привет всем, помогите пожалуйста с задачай. Условие : Написать программу, которая выводит на экран первую часть таблицы кодировки символов (символы с кодами от 0 до 127). Таблица должна состоять из восьми колонок и шестнадцати строк. В первой колонке должны быть символы с кодом от 0 до 15, во второй — от 16 до 31 и т.д. Вот код :
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main()
{ int i, j, m, n;
    cout<<"Stroki : ";cin>>m;
    cout<<"Stolbci : ";cin>>n;
    cout<<"ASCII\n";
    char ** table = new char * [m];
    for(i = 0; i < m; i++)
Но он выводит только ASCII символы, а мне нужно чтобы выводило символы с кодами от 0 до 127.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13998 / 8829 / 1234
Регистрация: 24.12.2010
Сообщений: 16,001
31.01.2014, 19:19     ASCII код #21
Там еще есть тонкости использованием символов TAB (9) Enter (13). При выводе их на консоль происходит именно то, что и должно - табуляция и перевод на новую строку. Так что их лучше их не выводить, вместо них - пробельчик, например.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
31.01.2014, 19:21     ASCII код #22
Байт, может вывести вместо перевода на новую строку "\n", а вместо табуляции "\t". Именно как текст ?
soundtrack
 Аватар для soundtrack
41 / 41 / 4
Регистрация: 15.12.2011
Сообщений: 131
31.01.2014, 19:21     ASCII код #23
BattleManLS, Забейте в гугле ASCII таблицу и вы увидите, что девятый символ таблицы - это табуляция '\t', а десятый - это символ новой строки '\n'. Именно поэтому когда вы их выводите, то визуально это некрасиво
Поставьте условие, например,
Код
if(table[i][j]=='\t') 
{cout<<"\\t";}
Ну или как-то так для большей красоты .

Не по теме:

Пока писал - уже ответили)

Байт
 Аватар для Байт
13998 / 8829 / 1234
Регистрация: 24.12.2010
Сообщений: 16,001
31.01.2014, 19:21     ASCII код #24
Цитата Сообщение от Xopecc Посмотреть сообщение
чем принципиально отличаются cout и printf ( а также cin и scanf) ??
ИМХО, на данном уровне освоения языка разницей можно пренебречь.
Xopecc
31.01.2014, 19:23
  #25

Не по теме:

soundtrack, я тебя опередил

mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
31.01.2014, 19:24     ASCII код #26
Свои 5 копеек:
Добавь
C++
1
#include <iomanip>
и замени на
C++
1
cout<<setw(2) <<table[i][j] <<setw(5)<< static_cast<int>(table[i][j]);
Байт
 Аватар для Байт
13998 / 8829 / 1234
Регистрация: 24.12.2010
Сообщений: 16,001
31.01.2014, 19:24     ASCII код #27
Цитата Сообщение от Xopecc Посмотреть сообщение
может вывести вместо перевода на новую строку "\n", а вместо табуляции "\t". Именно как текст ?
Идея здравая! Только слэш не забудь повторить. И учти, что выведется 2 символа. Т.е. и все остальные надо на 2 позиции помещать...
BattleManLS
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 31
31.01.2014, 19:25  [ТС]     ASCII код #28
Байт, Как вариант с кодом, без символом отлично работает. Спасибо.
Миниатюры
ASCII код  
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
31.01.2014, 19:28     ASCII код #29

Не по теме:

Байт, я тестил не собирался



Добавлено через 37 секунд
BattleManLS, а почему всего 72 символа?
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
31.01.2014, 19:30     ASCII код #30
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <iomanip>
 
using namespace std;
int main()
{ int i, j, m, n;
    cout<<"Stroki : ";cin>>m;
    cout<<"Stolbci : ";cin>>n;
    cout<<"ASCII\n";
    char ** table = new char * [m];
    for(i = 0; i < m; i++)
    {
        table[i] = new char[n];
        for(j = 0; j < n; j++)
        { table[i][j] = (n*i + j);
        
          cout<<setw(5)<< static_cast<int>(table[i][j]);
}
             cout<<endl; 
    }
   system ("Pause");
    return 0; 
 
    
    }
Миниатюры
ASCII код  
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
31.01.2014, 19:33     ASCII код #31
mustimur, а зачем выделяешь 5 символов для максимум трехзначного числа?
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
31.01.2014, 19:35     ASCII код #32
Цитата Сообщение от Xopecc Посмотреть сообщение
mustimur, а зачем выделяешь 5 символов для максимум трехзначного числа?
С запасом на символ и пробел
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
31.01.2014, 19:38     ASCII код #33
mustimur, запас изначально не нужен, а пробел и так поставить можно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2014, 19:44     ASCII код
Еще ссылки по теме:

C++ ASCII код последного символа в слове
C++ Вывести ascii код символа
ASCII код Хемминга с++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
31.01.2014, 19:44     ASCII код #34
Цитата Сообщение от Xopecc Посмотреть сообщение
mustimur, запас изначально не нужен
Я предполагал сначала что будет строчка выглядеть как-то так
C++
1
cout<<setw(5)<< static_cast<int>(table[i][j])<<table[i][j];
но символы до 13... дают срывания (значит уже как минимум 4).
Ладно сравним теперь так
C++
1
cout<<setw(4)<< static_cast<int>(table[i][j]);
и
C++
1
cout<<setw(3)<< static_cast<int>(table[i][j])<<" ";
и какая строчка изящней?
Yandex
Объявления
31.01.2014, 19:44     ASCII код
Ответ Создать тему
Опции темы

Текущее время: 19:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru