从 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
)——这是错误的。所以,请注意细节:)
这个函数应该从终端获取一行。但事实并非如此!我已经多次检查代码,但我一直无法查明问题所在!请帮忙!代码似乎没有进入 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
)——这是错误的。所以,请注意细节:)