gpt4 book ai didi

c - 我找不到为什么我的程序总是说太低

转载 作者:行者123 更新时间:2023-12-04 00:57:12 25 4
gpt4 key购买 nike

所以我一直在开发一个小程序,它制作一个文件,然后制作一个在该文件中生成随机数的子进程,然后让我的父进程读取该数字,然后玩一个简单的更高或更低的游戏.每当我运行它时,无论我输入多少数字,它总是说太低了。哪里出错了?

int main()
{
int fd, m;

if (mkfifo("myfifo", 0666) < 0)
perror("mkfifo"), exit(EXIT_FAILURE);

if (fork() == 0)
{
fd = open("myfifo", O_WRONLY);
srand(time(NULL));
int n = rand() % 100 + 1;
close(fd);
exit(EXIT_SUCCESS);
}

fd = open("myfifo", O_RDONLY);
read(fd, &m, sizeof(int));
int c = -1;
while ( m != c )
{
if ( c == -1)
printf("Guess a number 1-100\n");
else if (c > m)
printf("Too high!\n");
else if (c < m)
printf("Too low!\n");

printf("Enter your guess: ");
scanf ("%d",&c);
}
printf("Winner! Yes, the answer was %d \n",m);
close(fd);
wait(NULL);
unlink("myfifo");
exit(EXIT_SUCCESS);
}

最佳答案

您的子进程永远不会写入 fifo。它只是打开它,生成一个随机数,然后关闭它。试试:

// inside fork() == 0 block
write(fd, &n, sizeof(n));

关于c - 我找不到为什么我的程序总是说太低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61433189/

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