我是一名新 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/