[C++] числа

Тема в разделе "Другие языки программирования", создана пользователем gani, 13 май 2013.

  1. gani
    Оффлайн

    gani Новый пользователь

    Сообщения:
    3
    Симпатии:
    0
    Доброго всем времени суток. Учусь писать на си плюс плюс. Сейчас пишу морской бой, так вот, у меня есть двумерный массив типа char, я хочу в него внести поля игрока и противника для морского боя. Все нормально, но когда хочу отображать числа в столбик сбоку от самого поля (все внутри массива), приходится вводить не числа 1, 2, 3, и тд, а 49, 50, 51, и тд, то есть номера цифр в таблице ASCII. Вопрос: а как этого избежать, нельзя ли вводить в массив char значения типа int? или short?

    Добрую кучу времени пытаюсь разобраться, не выходит
    :confused:

    пытался через функцию static_cast <char> (int a), не вышло, опять выводит смайлыыыы
     
  2. Mistik
    Оффлайн

    Mistik Активный пользователь

    Сообщения:
    126
    Симпатии:
    187
    static_cast< int >( ch )
     
  3. Techno
    Оффлайн

    Techno Ассоциация VN

    Сообщения:
    881
    Симпатии:
    407
    В char не числа надо вводить, а символы, т.е. не 1,2,3, а '1','2','3'.
     
    2 пользователям это понравилось.
  4. gani
    Оффлайн

    gani Новый пользователь

    Сообщения:
    3
    Симпатии:
    0
    Спасибо большое))
    про кавычки все время забываю и путаю одинарные с двойными(
    А если я хочу не символ '1' ввести в массив, а скажем так:
    int a = 1;
    char massive [1] = 'a';

    У меня не выходит :mda:
     
    Последнее редактирование: 13 май 2013
  5. Techno
    Оффлайн

    Techno Ассоциация VN

    Сообщения:
    881
    Симпатии:
    407
    Потому что a - это имя переменной, а не символ. В одинарных кавычках только символы, в двойных кавычках строки.

    вот так должно работать char massive [1] = (char)a;
    Но зачем это надо, почему бы сразу не сделать char a='1')))
     
    1 человеку нравится это.
  6. gani
    Оффлайн

    gani Новый пользователь

    Сообщения:
    3
    Симпатии:
    0
    нуу просто у меня код немного сложнее..
    for (int s = 2; s <11; s++) {

    map [0] = s + 47;
    map [14] = s + 47;
    }
    вот так сейчас выглядит.. думаю, вы поймете, почему не мог сразу сделать(
     
  7. Techno
    Оффлайн

    Techno Ассоциация VN

    Сообщения:
    881
    Симпатии:
    407
    Да что-то не особо понимаю)

    Почему s с 2 начинается, а куда делись первые два элемента массива?
    Что за +47?

    Вообщем, если работаете с числами, то используйте тип int, в строку переводите только если требуется куда то вывести результат...
     
    DllPok нравится это.

Поделиться этой страницей