函数错误'char'之前的预期表达式?

我已经创建了以下程序,允许用户在结束程序前猜测一个单词3次。 我正在使用函数来读取用户输入。 当我编译程序时,我得到错误'char之前的预期表达式'。 一些反馈将非常感谢!

#include <stdio.h>
#include <string.h>

void get_user_input(char *guess[10]);

void get_user_input(char *guess[10])
{ 
     printf("Please guess the word: n");
     scanf("%s", guess);
}

int main(void)
{
     const char secret[10] = "pink";
     char guess[10];
     int i;

     for (i=0; i < 3; i++)
     {
         get_user_input(char *guess[10]);

         if (strcmp(secret, guess)==0)
         {
             printf("Your guess was correct");
             return 0;
         }
         else
         {
             printf("Your guess was incorrect. Please try againn");
         }
     } 
     return 0;
}

你在这里有一个额外的char

for (i=0; i < 3; i++)
{
    get_user_input(char *guess[10]);

只是摆脱它。 你只需要传入变量。

get_user_input(guess);

编辑:

另一个问题似乎是这个功能:

void get_user_input(char *guess[10]);

将其更改为:

void get_user_input(char *guess)
{ 
 printf("Please guess the word: n");
 scanf("%s", guess);
}

它应该工作。 但是,请注意,您冒着超出guess数组的风险。


在循环内写入

get_user_input(guess);

代替

get_user_input(char *guess[10]);

另外,你应该删除无用的原型

void get_user_input(char *guess[10]);

并将以下函数的签名更改为

void get_user_input(char * guess)

让一个指向数组的第一个字符的指针被传递,而不是指向第一个不会被编译的字符的指针。 一个侧面的问题是char *guess[10]意味着10个指向char的指针数组。

PS:除了出现错误信息之外,它还可以发布有问题的行号。

PPS:如果使用输入较长的答案,则会出现缓冲区溢出内存错误。 你可以使用fgets来避免这种情况。

链接地址: http://www.djcxy.com/p/84389.html

上一篇: Function error 'expected expression before char'?

下一篇: c++