【发布时间】:2016-07-17 10:33:13
【问题描述】:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
const int SIZE = 100;
char input[SIZE];
while(1)
{
fgets (input, SIZE - 2, stdin); // input
printf("%d", strcmp(input, "exit")); //returining 10 instead of 0
if(strcmp(input, "exit") == 0)
{
printf("SHELL Terminated\n");
exit(0);
}
return 0;
}
我遇到了一个问题。如果我在input变量中输入exit,函数strcmp()返回10,但它应该返回0并退出程序,因为exit等于退出。但事实并非如此。
我找不到问题。
【问题讨论】:
-
您是否尝试过先打印
input变量? -
@cad 空字符空间...
-
谷歌搜索你的确切标题会得到:“大约 60,500 个结果”,前三个条目是关于“换行”问题的三个 SO Q&A。
-
@Muzahir Hussain:首先,为什么要为 one 空字符保留 两个 字节?其次,
fgets已经知道在内部为空字符保留空间。