gpt4 book ai didi

c - 带 EOF 的 While 循环始终提示输入

转载 作者:行者123 更新时间:2023-11-30 17:54:02 26 4
gpt4 key购买 nike

我花了一些时间来解决这个问题,并决定来这里看看是否有人能够帮助我。我制作了一个给定的文本文件,并且在程序运行时将文本文件的内容发送到程序。例如: 如果我说

    scanf("%d", &integerOne); 

那么我的文本文件应该将第一行(例如)数字 8 放入该插槽中我希望它继续执行此操作,直到到达文件末尾,但这就是我遇到麻烦的地方。

与上面的示例不同,我使用的是字符:

    while((scanf("%s", userstring)) != EOF)
{
if(userstring[0] == 'c')
{
scanf("%d", &cinput);
}
if(userstring[0] == 'a')
{
scanf("%d", &cone);
scanf("%d", &cone);
}
}

只是为了一些背景,我创建了数组“userstring”来保存“c”(用于连接)或“a”(用于添加)。当程序没有收到任何更多的“char”输入时,我试图让程序执行循环和其他函数。您所有的见解都非常有帮助。非常感谢,亚历克斯。

最佳答案

scanf返回已成功匹配并分配的输入项的数量,因此最好检查其返回值是否等于1。另请注意,此循环内的 scanf 调用可能会失败,因此,如果输入可能无效,您还应该检查它们的返回值:

while (scanf("%s", userstring) == 1)
{
if (userstring[0] == 'c')
{
if (scanf("%d", &cinput) != 1)
return -1; // TODO: scanf failed
}
...
}

并回答您的实际问题:while始终提示用户输入另一个字符串,因为停止此读取的唯一方法是输入输入结束控制代码,即< kbd>Ctrl+Z(在 Windows 上)或 Ctrl+D(在 Mac、Linux、Unix 上)。

关于c - 带 EOF 的 While 循环始终提示输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15303814/

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