我想从用户那里获取输入,跳过空格但由于某种原因,这段代码似乎不起作用!
#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;然而,得到我的字符串 由于某种原因,输出不会从输入中打印字符串... 任何帮助都会很棒! 提前谢谢
答案 0 :(得分:2)
C中的经典错误。
while((input[0]=c=getchar())==' ' || (input[0]=c='\t'))
最后=
应为==
。
还有第二个问题(正如你在我工作时发现的那样)。
while((c=getchar()) != EOF || c!='\n')
||
应为&&
。
还有一件事:因为你的逻辑,你会失去你的第一个角色。我会把它留给你解决。 : - )