Обновленный код:
int main()
{
char x[]="Yasser Mohamed";
char ch;
int i=0;
while (x[i]!='\0')
{
if(x[i]!=' ') {
printf("%c", x[i]); // replace putchar with printf
fflush(stdout); // force character to appear
}
i++;
}
printf("\n"); // print newline so shell doesn't appear right here
return 0 ;
}
Строки оканчиваются нулем \0
символы не Newlines.
Кроме того, вы должны добавить оператор fflush
(по крайней мере, на linux), чтобы убедиться, что каждый символ печатается.
Чтобы сделать ваш вывод красивым, добавьте новую строку после цикла.
Я заменил ваш звонок putchar
printf
, чтобы узнать, поможет ли это, когда я запустил вашу программу. putchar
, скорее всего, также будет работать нормально.
Я удалил system(pause)
, потому что он, похоже, не помог. Вместо этого я добавил символ символа новой строки.
Рассмотрите другие ответы, чтобы отметить лучший ответ. –
Для функции 'system()' требуется инструкция: '#include', которой не указан код. –
user3629249
команда 'pause' shell не переносима, она находится только в окнах. общий способ реализации аналогичной функции: 'int ch; while ((ch = getchar()! = EOF && '\ n'! = ch); getchar(); ' – user3629249