пример кода (комментарии, что я предполагаю, что это делает для первого цикла):Почему не удается отменить отмену вызова getchar() в C?
#include <stdio.h>
#define BACKSPACE 8
main()
{
int c;
while((c = getchar()) != EOF) //output: GODDAMN NOTHING cursor on: 'h'
{
//if the input is "house" before entering EOF
putchar(c); //output: 'h' cursor on: 'o'
getchar(); //output: 'h' cursor on: 'u'
printf("%c", BACKSPACE); //output: 'h' cursor on: 'o'
getchar(); //output: 'h' cursor on: 'u'
printf("%c", BACKSPACE); //output: 'h' cursor on: 'o'
getchar(); //output: 'h' cursor on: 'u'
printf("%c", BACKSPACE); //output: 'h' cursor on: 'o'
}
} //ACTUAL END OUTPUT: "h"
Я знаю, что регулярные реверс в большинстве программ выглядит следующим образом: Е («% C% C», 8, 8) ; ..взаимодействующий backspace почти просто перемещает курсор назад, не удаляя ничего, точно так же, как getchar() просто перемещает курсор вперед.
Я пытаюсь понять, почему выше пример кода это не совсем то же самое, как:
#include <stdio.h>
main()
{
int c;
while((c = getchar()) != EOF) //output: WE HAVE NOTHING cursor on: 'h'
{
//if the input is "house" before entering EOF
putchar(c); //output: 'h' cursor on: 'o'
}
} //ACTUAL END OUTPUT: "house"
EDIT: следить за вопрос! Как мне «отменить» вызов getchar()?
#include <stdio.h>
main()
{
int c;
char a;
while((c = getchar()) != EOF)
{
a = c;
putchar(c);
a = getchar();
??????????
}
}
что я должен поставить на «??????????», так что, когда я GetChar снова позвонить назначить с, он получает символ после предыдущего присвоения с, а не символ после a.