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

标签 c stdin

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

相关文章:

c - 为 2D 数组分配内存时出现段错误(核心转储)

php - laravel artisan 使用未定义的常量 STDIN - 假设 'STDIN' 无限循环

c - __int128_t 算术是否被 GCC 模拟,即使使用 SSE?

c - 按位 '&' 运算符

c - 使用 fgets 错误通过标准输入读取输入

c - 反向冒泡排序(最大的在左边)似乎不起作用

c++ - 为什么这个矩阵乘法代码不起作用

c - 哪里可以找到 `stdin`宏声明?

c - Linux重定向到C程序-文件读取

c# - 如何使用 sendmessage(C#) 向 cmd.exe 发送退格键