c ++ печать значений без знака [duplicate]

Одна команда liner удаляет как локальные, так и удаленные :

D=branch-name; git branch -D $D; git push origin :$D

или добавляет псевдоним ниже к вашему ~ /. gitconfig ; использование: git kill branch-name

[alias]
    kill = "!f(){ git branch -D \"$1\";  git push origin --delete \"$1\"; };f"
9
задан Ken Kin 23 March 2013 в 12:35
поделиться

4 ответа

У меня была аналогичная проблема здесь , о которой я давно забыл. Разрешение этой проблемы с iostream's cout может быть выполнено следующим образом:

#include<iostream>
#include<stdio.h>

main() {
    unsigned char a;
    a=1;
    printf("%d", a);
    std::cout<< +a << std::endl;

    return 0;
}

вместо того, чтобы вернуть его другому типу, если вы хотите cout напечатать значение unsigned char как напротив символа ascii. Вам нужно promote это.

Если вы заметили, что все, что я сделал, добавили + до unsigned char. Это унарное дополнение, которое будет способствовать unsigned char, чтобы дать вам фактическое представление числа.

Пользователь Baum mit Augen отвечает за напоминание мне об этом решении.

1
ответ дан Francis Cugler 24 August 2018 в 18:50
поделиться

Вам нужно, чтобы тип a был целым числом cout<< (int)(a);. При этом вы увидите 1 на выходе. С cout << a; печать будет SOH (Start of Heading), соответствующая значению ascii 1, которая не может быть напечатана, и, следовательно, наблюдается некоторый специальный символ.

EDIT:

Чтобы быть более точным, утверждение cout должно быть cout << static_cast<unsigned>(a), как упоминал Наваз.

3
ответ дан Ganesh 24 August 2018 в 18:50
поделиться
[Д0] Е ( "% U", а); его так просто попробуйте

-1
ответ дан Jagathesan NB 24 August 2018 в 18:50
поделиться

cout << a печатает значение, которое кажется вам мусором. На самом деле это не мусор. Это просто непечатаемый символ ASCII, который все равно печатается. Обратите внимание, что символ ascii, соответствующий 1, не печатается. Вы можете проверить, доступна ли a для печати или не используется, std::isprint как:

std::cout << std::isprint(a) << std::endl;

Он напечатает 0 (чтение: false), указав символ не печатается

-

В любом случае, если вы хотите, чтобы ваш cout также напечатал 1, затем нажмите a на это:

cout << static_cast<unsigned>(a) << std::endl;
25
ответ дан Nawaz 24 August 2018 в 18:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: