使用 C 编程使用 argc 和 argv 参数创建一个刽子手游戏程序

标签 c string pointers

我是一名新 C 程序员,几个月前正在开发一个刽子手游戏程序。我的代码在下面,在最底部我有我想要的代码的结果。我遇到了一些收到的错误,任何帮助都有效。我将错误放在本段下方和代码上方。我知道我的刽子手图的\是一个转义键,但我需要使用它并以某种方式解决此错误。谢谢!

第 38:9 行:警告:未知转义序列 '\o'

第 46:9 行:警告:未知转义序列 '\o'

第 54:9 行:警告:未知转义序列 '\o'

第 62:9 行:警告:未知转义序列 '\o'

第 70:9 行:警告:未知转义序列 '\o'

第 72:9 行:警告:未知转义序列 '\o'

#include <stdio.h>
#include <string.h>
#define MAX_SIZE 25
#define MAX_WRONG_GUESSES 6

void check(char word[]){
 while(strlen(word)>MAX_SIZE){
   printf("ERROR: Input argument is too long\n");
   break;
 }
}

void hangman(int error_left){
 if(error_left == 6){
 printf("___    ");
 printf("\n|    ");
 printf("\n|    ");
 printf("\n|    ");
 printf("\n-----");}


 if(error_left == 5){
 printf("___  ");
 printf("\n| o  ");
 printf("\n|    ");
 printf("\n|    ");
 printf("\n-----");}


 if(error_left == 4){
 printf("___    ");
 printf("\n|\o  ");
 printf("\n|    ");
 printf("\n|    ");
 printf("\n-----");}


 if(error_left == 3){
 printf("___  ");
 printf("\n|\o/ ");
 printf("\n|    ");
 printf("\n|    ");
 printf("\n-----");}


 if(error_left == 2){
 printf("___    ");
 printf("\n|\o/ ");
 printf("\n| |  ");
 printf("\n|    ");
 printf("\n-----");}


 if(error_left == 1){
 printf("___    ");
 printf("\n|\o/ ");
 printf("\n| |  ");
 printf("\n|/   ");
 printf("\n-----");}


 if(error_left == 0){
 printf("___    ");
 printf("\n|\o/ ");
 printf("\n| |  ");
 printf("\n|/ \ ");
 printf("\n-----");}
}

int guess(char word[]){
 char in;
 int x = 0;
 int guesses, error_left;
 for(guesses=0; guesses<strlen(word); guesses++){
  for(error_left=MAX_WRONG_GUESSES; error_left>=0; error_left--){
    printf("Guess a letter(%d attempts left) > ", error_left);
    scanf(" %c", &in);
    if(in != word[x] ){
        error_left=error_left-1;
        hangman(error_left);
        printf("There are no %c's\n", in); 
      }else { error_left = error_left;
              hangman(error_left); 
              printf("There is \n");    } 
     }
 }
 return error_left;
}

void game_over(int error_left){
 printf("Game Over\n");
 printf(" total guesses made\n");
 if(error_left>0){
      printf("You won!");  }
    else {printf("Out of guesses\nYou lost.");  }
}

int main(int argc, char *argv[])  {
 char word[MAX_SIZE];
 strcpy(word, argv[1]);
 void check(char word[]);
 int guess(char word[]);
 void game_over(int error_left);
 return (0);
}

./奖励小猫

猜一个字母(还剩 6 次尝试)> q

<小时/>

|哦 |

|

<小时/>

没有问题

猜一个字母(还剩 5 次尝试)> w

<小时/>

|\o |

|

<小时/>

没有w

猜一个字母(还剩 4 次尝试)> e

<小时/>

|\o/ |

|

<小时/>

没有e

猜一个字母(还剩 3 次尝试)> r

<小时/>

|\o/ | |

|

<小时/>

没有r

猜一个字母(还剩 2 次尝试)> t

<小时/>

|\o/ | |

|

**tt***t 有3个

猜一个字母(还剩 2 次尝试)> y

<小时/>

|\o/ | |

|

ttyt 还有 1 年

猜一个字母(还剩 2 次尝试)> u

<小时/>

|\o/ | |

|/

ttyt 没有你的

猜一个字母(还剩 1 次尝试)> o

<小时/>

|\o/ | |

|/\

ttyt 没有 o

游戏结束 总共做出了 8 个猜测。 出于猜测。 你输了。

最佳答案

如果需要printf一个\,则打印其中2个(转义转义)printf("\\");

关于使用 C 编程使用 argc 和 argv 参数创建一个刽子手游戏程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36255214/

相关文章:

c++ - 在指定一些(不是全部)参数时传递指向函数的指针

c - 数组指针错误?

c - Windows 上的 GCC : Set "Description" field of C executable?

java - 使用 JNI 时出现 UnsatisfiedLinkError?

Java StringTokenizer 错误

c - 段错误存储输入并添加两个指针

c++ - 将 OpenCV 图像数据类型转换为 Devil 图像格式,反之亦然

C 文字,这些存储在哪里

string - 如何将 cmdlet 插入到 powershell 中的字符串中

c - 如何计算字符串列表的出现次数并将其输出到新文件?