相关疑难解决方法(0)

使用scanf时getchar不会停止

我很难理解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)

c getchar

7
推荐指数
1
解决办法
1万
查看次数

C中是/否循环

我只是不明白为什么这个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)

c scanf while-loop

1
推荐指数
1
解决办法
4万
查看次数

标签 统计

c ×2

getchar ×1

scanf ×1

while-loop ×1