gpt4 book ai didi

c - STDIN 重定向 : how to make program end once fgets() reads an expected ending line

转载 作者:行者123 更新时间:2023-11-30 15:37:15 25 4
gpt4 key购买 nike

好的,我有一个读取文件行的​​程序。然而,一旦到达终点线
*** 结束***
这是为了看到这一点
char str[100];
while(fgets(str,100,stdin) != NULL && strcmp(str,"*** END ***"))
while 循环应该停止,因为 strcmp 将等于 0,从而使 while 循环为 false。

然而事实并非如此。我认为这是因为 str 的字符数量与 "*** END ***"不同(我假设复制行后的其余部分里面没有任何内容?) 。如何修复我的程序,使其在读取该行后结束?谢谢。

好的,所以我现在知道这是因为在我的示例文本中,我在那一行之后有一行。删除后就可以正常使用了。但是无论后面是否有一行,我怎样才能让它结束呢?

最佳答案

你可以使用

char * strstr ( const char *, const char * )

指向 str2 中指定的整个字符序列在 str1 中第一次出现的指针,如果该序列不存在于 str1 中,则为空指针。

关于c - STDIN 重定向 : how to make program end once fgets() reads an expected ending line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22281848/

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