gpt4 book ai didi

c - 以字符串形式获取输入并打印

转载 作者:太空宇宙 更新时间:2023-11-04 03:28:55 25 4
gpt4 key购买 nike

我正在尝试编写一个 mastermind 程序,但我受困于字符串输入。我尝试让用户猜测,当我尝试打印它时出现错误我不知道为什么这是程序的那一部分

char* UserGuess[4];

void *Guess()
{
long i;
printf("Enter your guess: ");
for(i=0;i<4;i++)
{
fgets(UserGuess, 4, stdin);

}
return UserGuess;
}
int main()
{
int userchoice=0, i;

while(userchoice!=2)
{

Guess();
printf("%s\n", UserGuess[0]);
break;
}
}

最佳答案

让我们看一下这两行:

char* UserGuess[4];

fgets(UserGuess, 4, stdin);

第一个将 UserGuess 声明并定义为一个包含四个 char 指针的数组。 IE。作为四个字符串。

第二个尝试将其用作 char 数组,即单个字符串。

这是错误的,你可能想要类似的东西

for (unsigned i = 0; i < 4; ++i)
fgets(UserGuess[i], SOME_SIZE, stdin);

这当然会导致另一个问题,因为 UserGuess 中的所有指针都将是空指针(全局变量被零初始化,这意味着指针变为 NULL)。因此,您还必须更改数组定义:

char UserGuess[4][SOME_SIZE];

或者您只想要一个包含三个字符的字符串(加上终止符)?那么你应该把数组的定义改成

char UserGuess[4];

并将输出更改为例如

printf("%s\n", UserGuess);

然后在一个有点相关的注释上,fgets函数读取换行符并可能将其添加到字符串中(如果适合)。

关于c - 以字符串形式获取输入并打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38788569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com