c - 刽子手游戏的简化(且不完整)版本中的错误

标签 c

我已经编写了 Hangman 的第一个版本。游戏将在稍后完成,届时这部分代码将起作用。

代码:

#include <stdio.h>
#include <conio.h>



int main()
{
    char word[]={"name"};
    char word0[]={"----"};
    char lett;
    int i;
    int c;
    int e=0;

    while(e<12)
    {
        gotoxy(2,2);
        printf("\n%s\n",word0);
        scanf("%c",&lett);
        for(i=0,c=0;i<4;i++)
        {
            if(lett==word[i])
            {
                word0[i]=word[i];
                c++;
            }
        }


        printf("%d",c);  
        if(c==0)
        {
            e++;
            printf("%d",e);
        }       
    }    
    printf("You lose");
    getchar();
}

程序在我犯 12 个错误之前结束,并在每个周期打印两个值(不是 1,它应该这样做),这与实际错误数不一致。为什么?

最佳答案

第二个“周期”,如您所说,是读取换行符。尝试将你的 scanf 更改为:

scanf("%c\n",&lett);

关于c - 刽子手游戏的简化(且不完整)版本中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21240988/

相关文章:

c - undefined reference -- 局部符号

c - 单元测试错误条件 - EINTR

我可以让线程保持事件状态并为它们提供其他工作负载吗?

c - 基本 UDP 客户端/服务器无法工作?

c - 等待所有子进程退出

c - openssl 的链接器和编译器错误

Cygwin1.dll 'not found' 在运行用 C 编写的程序时。如何让 Windows 找到它?

c - 为什么 realloc 会弄乱值?

c - .dll 只能在 Windows XP 和 Vista 上正常工作,但不能在 7 上正常工作?

c - 结构中未调整大小的数组声明