Печать символов и их кода ASCII в C

Магическое число - это прямое использование числа в коде.

Например, если у вас есть (в Java):

public class Foo {
    public void setPassword(String password) {
         // don't do this
         if (password.length() > 7) {
              throw new InvalidArgumentException("password");
         }
    }
}

Это должно быть реорганизовано в :

public class Foo {
    public static final int MAX_PASSWORD_SIZE = 7;

    public void setPassword(String password) {
         if (password.length() > MAX_PASSWORD_SIZE) {
              throw new InvalidArgumentException("password");
         }
    }
}

Это улучшает читаемость кода, и его легче поддерживать. Представьте, что я установил размер поля пароля в графическом интерфейсе. Если я использую магическое число, всякий раз, когда изменяется максимальный размер, я должен изменить в двух местах кода. Если я забуду один, это приведет к несоответствиям.

JDK полна примеров, например, в классах Integer, Character и Math.

PS: Статический анализ инструменты, такие как FindBugs и PMD, обнаруживают использование магических чисел в вашем коде и предлагают рефакторинг.

25
задан SilentGhost 24 September 2009 в 16:07
поделиться

4 ответа

Распечатываются все значения ASCII:

int main()
{
    int i;
    i=0;
    do
    {
        printf("%d %c \n",i,i);
        i++;
    }
    while(i<=255);
    return 0;
}

, а при этом выводится значение ASCII для данного символа:

int main()
{
    int e;
    char ch;
    clrscr();
    printf("\n Enter a character : ");
    scanf("%c",&ch);
    e=ch;
    printf("\n The ASCII value of the character is : %d",e);
    getch();
    return 0;
}
32
ответ дан 28 November 2019 в 07:33
поделиться

Самый простой подход в печати значений ASCII данного алфавита.

Вот пример:

#include<stdio.h>
int main()
{
    //we are printing the ASCII value of 'a'
    char a ='a'
    printf("%d",a)
    return 0;
}
0
ответ дан 28 November 2019 в 07:33
поделиться

Попробуйте следующее:

char c = 'a'; // or whatever your character is
printf("%c %d", c, c);

% c - это строка формата для одного символа, а% d - для цифры / целого числа . Приведя char к целому числу, вы получите значение ascii.

4
ответ дан 28 November 2019 в 07:33
поделиться

Это считывает строку текста из стандартного ввода и распечатывает символы в строке и их коды ASCII:

#include <stdio.h>

void printChars(void)
{
    unsigned char   line[80+1];
    int             i;

    // Read a text line
    if (fgets(line, 80, stdin) == NULL)
        return;

    // Print the line chars
    for (i = 0;  line[i] != '\n';  i++)
    {
        int     ch;

        ch = line[i];
        printf("'%c' %3d 0x%02X\n", ch, ch, (unsigned)ch);
    }
}
0
ответ дан 28 November 2019 в 07:33
поделиться
Другие вопросы по тегам:

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