gpt4 book ai didi

c - 如何使用 EOF 停止程序代码

转载 作者:行者123 更新时间:2023-12-02 01:12:41 25 4
gpt4 key购买 nike

我完成了程序的输入和处理部分,但我不知道如何使用 EOF 终止程序。这是我的 int main(void) 代码:

int main(void)
{
int size;

int n;

char preorder[26];
char inorder[26];

while(/* I don't know what to put on this part...*/)
{
for(n = 0; n < maxSize; n++)
{
preorder[n] = ' ';
inorder[n] = ' ';
}
preIndex = 0;

scanf("%s %s", preorder, inorder);

size = strlen(preorder);

struct node *root = constructTree(inorder, preorder, 0, (size - 1));
printPostorder(root);
printf("\n");
}

return 0;
}

每个功能都运行良好,我分别检查了它们。基本上,用户想通过按 Ctrl + Z 来结束这个程序(我在 Windows 上工作,所以它是 Z)。我必须使用 EOF。提前致谢

最佳答案

检查输入函数的返回值。 scanf 将返回存储的项目数,如果遇到文件结尾则返回 EOF。

正如 Anthon 所说,您可以使用 while(1) 作为循环控制,并使用 break; 退出循环。

while(1) {
if (scanf(...) == EOF)
break;
}

不要试图使用名为 feof() 的函数,因为它只检查 FILE 结构中的标志,即。它只会在您尝试阅读后 检测到 EOF。不过,它可以用于多层错误处理结构。

while(1) {
if (scanf(...) < N_elements_specified) {
if (feof(...)) {
/* EOF detected */
break;
} else {
/* some other cause of insufficient data */
}
}
}

关于c - 如何使用 EOF 停止程序代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15596467/

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