我很难理解getchar().在以下程序中getchar按预期工作:
#include <stdio.h>
int main()
{
printf("Type Enter to continue...");
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,在以下程序中,getchar不会产生延迟并且程序结束:
#include <stdio.h>
int main()
{
char command[100];
scanf("%s", command );
printf("Type Enter to continue...");
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我有以下的解决方法,这是有效的,但我不明白为什么:
#include <stdio.h>
int main()
{
char command[100];
int i;
scanf("%s", command );
printf("Type Enter to continue...");
while ( getchar() != '\n') {
i=0;
}
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
1.在scanf做什么?为什么这样scanf做?
2.为什么我的工作在工作?
3.模拟以下Python代码的好方法是什么:
raw_input("Type Enter to continue")
Run Code Online (Sandbox Code Playgroud) 我只是不明白为什么这个Yes/No循环不起作用.有什么建议?鉴于输入是"Y".我只想让它运行循环,然后再次询问Y或N. 如果是Y,则打印成功,如果是N,则打印出良好的再见声明.什么原因?
int main(){
char answer;
printf("\nWould you like to play? Enter Y or N: \n", answer);
scanf("%c", &answer);
printf("\n answer is %c");
while (answer == 'Y'){
printf("Success!");
printf("\nDo you want to play again? Y or N: \n");
scanf("%c", &answer);
}
printf("GoodBye!");
return 0;
}
Run Code Online (Sandbox Code Playgroud)