【发布时间】:2018-04-03 08:06:45
【问题描述】:
char buf[BUF_SIZE + 1];
printf("[Enter Command]: \n");
num_read = read(STDIN_FILENO, buf, BUF_SIZE);
if (num_read == 5) {
exit(0);
}
我想检查用户输入的字符串是否为"exit",如果是则退出程序。上面的 sn-p 有效,但它将在所有 4 个字母字符串上退出。我只希望它在字符串"exit" 上退出。
我不明白为什么下面的代码不起作用:
if (strcmp("exit", buf) == 0) {
exit(0);
}
【问题讨论】:
-
什么是
exit_call?你还没有在任何地方定义它。只有显示所有相关的代码部分才能获得帮助。 -
@Binarus 抱歉,我已经更新了代码
-
这是怎么失败的?
-
您只需要在
read调用后添加空字节:if (num_read > 0) buf[num_read] = '\0';。 -
只需在末尾添加 '\0' 替换 '\n' buf[strcspn(buf, "\n")] = '\0'