gpt4 book ai didi

C 程序 strcmp 不工作

转载 作者:太空宇宙 更新时间:2023-11-04 07:22:35 25 4
gpt4 key购买 nike

我对为什么输入没有正确地与“历史记录”进行比较感到困惑。无论我输入什么,它似乎都不会进入 if 语句。一旦我输入 history 它就应该进入 if 语句。我尝试使用 scanf("%s\n", input);还可以看到它工作正常,但不是我想要的方式。

while(fgets(input, sizeof(input), stdin) != NULL){

filePrint = fopen(".simpleshell_history", "a");
fileRead = fopen(".simpleshell_history", "r");

count++;
fprintf(filePrint, "%d - %s", count, input);
fclose(filePrint);

if (strcmp(input,"history")==0){
printf("%s\n", input);
fseek(fileRead, 0, SEEK_SET);
int x = 0;
while ((x = fgetc(fileRead)) != EOF){
printf("%c", x);
}
}
}

最佳答案

当您键入“history\n”时,fgets() 会读取并存储换行符。尝试在您的 if 语句中使用 strncmp(input, "history", 7) 或 "strcmp(input, "history\n")。

关于C 程序 strcmp 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20452350/

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