【发布时间】:2011-02-13 23:18:28
【问题描述】:
在 C 语言中,我正在编写一个程序,它接收用户输入而不是比较它以查看它应该使用哪个输出。我发现它有问题,想知道是否有人可以帮我一把。到目前为止,我有:
while(cmd[0] != EOF){
fgets(cmd, sizeof(cmd), stdin); /** Takes in user input and stores it in cmd **/
if(cmd[0] == '\n')
printf("%s> ", cwd);
else if(strcmp(cmd, "ls") == 0)
printf("I will list everything");
}
有什么想法吗? 基本上它只是忽略任何用户输入。
附:变量 cwd 只是一个字符串。
【问题讨论】:
-
您遇到了什么问题?
-
基本上它会忽略除新行之外的任何用户输入。
-
@Michael Dillon - 如果将其声明为
char cmd[128];,则非常有意义。如果它是一个动态数组,那么你是对的。 -
@Chris- 关键是问题中根本没有声明它。 sizeof 应该只用于完全定义的类型,我们看不到 char *cmd 是否完全定义。