как я могу отобразить символы \ t в строке? - PullRequest
1 голос
/ 08 декабря 2010

Вечер всех, Какова будет правильная последовательность клавиш для отображения «\ t» в виде литерального значения, а не текстового формата?

Мой код ниже ...

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

main()
{

  int c;

  while ((c = getchar()) != EOF) {

      if (c == '  ')
          c = "\t";
    putchar(c);
    }

}

Итак, чтобы уточнить, я не хочу иметь строку с вкладками, а вместо этого отображать символы \ t.

Ответы [ 6 ]

9 голосов
/ 08 декабря 2010

Вы можете избежать обратной косой черты с другой обратной косой чертой, то есть "\\t".

Между прочим, вы пытаетесь присвоить строку (то есть более одного символа) int. Это не имеет смысла!

5 голосов
/ 08 декабря 2010

Разве вы не хотели бы что-то подобное вместо этого?

1 голос
/ 08 декабря 2010

Чтобы иметь обратную косую черту в символьной / строковой константе, интерпретируемой буквально, вы должны экранировать ее с другой обратной косой чертой.Кроме того, одного вызова putchar() будет недостаточно, поскольку вы должны напечатать два символа.При этом вы получите:

putchar('\\');
putchar('t');
1 голос
/ 08 декабря 2010

Избегайте обратной косой черты, таким образом "\\t".

0 голосов
/ 08 декабря 2010

На самом деле "\ t" требует отображения двух символов.

main()
{

  int c;

  while ((c = getchar()) != EOF) {

      if (c == '  ') {
       putchar('\\');
       putchar('t');
      }
  }

будет одним из способов сделать это.}

0 голосов
/ 08 декабря 2010

Вам нужно сбежать от побега следующим образом:

printf("\\t");

Это напечатает \t, как вы хотите.

...