gpt4 book ai didi

c - 当用户在 C 中输入 "exit"时如何让程序终止

转载 作者:行者123 更新时间:2023-12-04 13:10:35 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do I properly compare strings in C?

(10 个回答)


9 个月前关闭。




当我输入“exit”时,程序似乎没有从下面的代码中终止;当用户键入“退出”时,是否有我遗漏的东西或有更好的方法来终止程序?
在我的代码中,您还可以看到它在 EOF 发生时终止,这可以正常工作,但当我输入“exit”时它不会终止。
我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>

int main () {
char input[512];
char * charp;
int len = 0;

printf("> ");
if(fgets(input, 512, stdin) == 0 || input == "exit") { /* reads in input from user no more than 512 chars including null terminator*/
printf("exitting program");
exit(0);
}

printf("You entered: %s", input);
len = strlen(input);

charp = strtok(input, " ' '\t"); /* splits the string on delimiters space '' and tab*/
while (charp != NULL) {
printf("%s\n", charp);
charp = strtok(NULL, " ' '\t");
}

printf("The len of input = %d ", len);

return(0);
}

最佳答案

input == "exit"


是错的。应该是 strcmp(input,"exit")==0 ,否则将输入字符串的地址与内存中字符串“exit”的地址进行比较,而不是内容。
确保从 fgets 中删除换行符先打电话,或使用 strncmp(input, "exit", 4)

关于c - 当用户在 C 中输入 "exit"时如何让程序终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65862890/

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