函数错误'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++