从 C 中的标准输入读取行的函数未按预期工作

Function to read line from standard input in C not working as expected

这个函数应该从终端获取一行。但事实并非如此!我已经多次检查代码,但我一直无法查明问题所在!请帮忙!代码似乎没有进入 while 块。

int getline(char line[]) {
int i = 0 ;
int c ; 
while( ((c=getchar()) != EOF) && (c =! '\n') ) { 
    line[i++] = c ;
}
line[i] = '[=10=]' ; 
return i ; 
}

这是不正确的

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

应该是

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

你注意到区别了吗? != 是比较(这是正确的),而 =! 是完全不同的(这意味着否定 '\n' 并将其分配给 c)——这是错误的。所以,请注意细节:)