gpt4 book ai didi

c - 为什么这段代码总是打印 "not matched"?

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

#include <stdio.h>

int main(int argc, char const *argv[])
{
FILE *ls = popen("tmp.sh", "r");
char char_array[256];
while (fgets(char_array, sizeof(char_array), ls) != 0) {
//NOP
}
char *ptr_somechar = &char_array[0];
char *pointer = "high";
if (strcmp(pointer, ptr_somechar) == 0)
{
printf("%s\n", "match");
} else
{
printf("%s\n", "not matched");
}
pclose(ls);
return 0;
}

我想将输出与线路进行比较。 tmp.sh 返回“高”。为什么这段代码总是打印“不匹配”?

最佳答案

文件中的字符串“high”似乎后面跟着一个换行符,并且 fgets 也会读取该 \n 。您需要在比较之前删除该字符。

关于c - 为什么这段代码总是打印 "not matched"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30946249/

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