无法获得正确的输入

时间:2018-05-17 12:55:56

标签: c

我想从用户那里获取输入,跳过空格但由于某种原因,这段代码似乎不起作用!

 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 #define  MAX 50

 char *gettline();

 int main()
 {
     char *input;
     for( ; ; )
     {/*here i try to check the input and output*/
         printf("#");
         input = gettline();
         printf("%s\n",input);
         free(input);     
      }
    return 0;
 }


char *gettline(){
  int c,i;
  char *input = malloc(sizeof(char)*MAX);

  while((input[0]=c=getchar())==' ' || c=='\t'))
       ;
  input[1]='\0';

  i=0;
  while((c=getchar()) != EOF || c!='\n')
  input[i++] = c;

  input[i]='\0';
  return input;
  }

输出打印&#39;#&#39;然而,得到我的字符串 由于某种原因,输出不会从输入中打印字符串... 任何帮助都会很棒! 提前谢谢

1 个答案:

答案 0 :(得分:2)

C中的经典错误。

while((input[0]=c=getchar())==' ' || (input[0]=c='\t'))

最后=应为==

还有第二个问题(正如你在我工作时发现的那样)。

while((c=getchar()) != EOF || c!='\n')

||应为&&

还有一件事:因为你的逻辑,你会失去你的第一个角色。我会把它留给你解决。 : - )