这个函数应该从终端获取一行。但事实并非如此!我已经多次检查代码,但我一直无法查明问题所在!请帮忙!代码似乎没有进入 while block 。
int getline(char line[]) {
int i = 0 ;
int c ;
while( ((c=getchar()) != EOF) && (c =! '\n') ) {
line[i++] = c ;
}
line[i] = '\0' ;
return i ;
}
最佳答案
这是不正确的
while( ((c=getchar()) != EOF) && (c =! '\n') )
应该是
while( ((c=getchar()) != EOF) && (c != '\n') )
你注意到区别了吗? !=
是比较(正确),而=!
是完全不同的(意思是取反'\n'
赋值给c
) - 这是错误的。所以,请注意细节:)
关于c - 从 C 中的标准输入读取行的函数未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41908848/