Я пытаюсь написать короткую программу, которая помещает каждое слово в новую строку. Новая строка может быть подтверждена табулятором, пробелом или enter. Конец программы помещает «#» в консоль. У меня возникла проблема, что когда я помещаю «вводить» в консоль, он записывает следующие символы в одной строке.Почему printf (" n") не переходит к следующей строке?
Вторая идея состоит в том, чтобы сделать все это в таблице, поэтому я могу скомпоновать форматированный текст в конце. Я тоже не могу понять.
#include<stdio.h>
#include <conio.h>
#define STOP '#'
int main()
{
char ch;
while ((ch = (_getch())) != STOP) {
switch (ch) {
case '\n':
printf("\n");
break;
case '\t':
printf("\n");
break;
case ' ':
printf("\n");
break;
default:
putchar(ch);
}
}
printf("\nEND");
_getch();
return 0;
}
Вы проверили, что возвращается '_getch()', когда вы предоставляете «enter»? – Martin
В Windows вы выдаете «\ r \ n» для новой строки. –
@JohnnyMopp Стандарт C требует 'printf (" \ n ")' для DTRT, независимо от того, является ли терминатор линии OS единственным символом. (В частности, как вход, так и вывод в объектах FILE, открытых в текстовом режиме, требуется для преобразования между '\ n' и любым терминатором линии ОС.' '_getch' не является частью стандарта C, поэтому он не подлежит этому править. – zwol