Getchar() 不断返回 1

Getchar() keeps returning 1

我是 Whosebug 的新手。我希望能够在这里学到很多东西。 所以,我是 C 的初学者。我只是尝试一些事情,比如使用非常基本的功能。 这是我的代码:

#include <stdio.h>
#include <stdlib.h>


int main()
{   int c;
    int i,wl[20];
    int count = 0;
   i = 0;

printf("Insert line: ");    


while(c= getchar() != '\n'&& c != EOF)
    printf("integer value of the variable is %d\n", c);
return 0;
}

这应该是一个简单的程序:您插入一个输入并以 int 形式为您提供当前值。 问题是:getchar 无论如何都会返回 1。

另外,我还有一个问题。我知道 C 中的 char 基本上是一个 8 位整数,事实上您可以互换使用 char 和 int(有一些问题,因为整数不是 8 位变量)。那么:为什么有些人在需要使用 getchar 存储 char 时将变量声明为 int 而不是 char?很抱歉回答这些基本问题。

N.B:声明了其他变量,因为这是更大代码的一部分。代码的所有其他部分都作为代码放置以测试此 (/* */)。 对不起我的英语,我希望我写的清楚。

这个:

c= getchar() != '\n'

等同于

c = (getchar() != '\n')

所以完全不是你的意思。所以 1!= 比较的结果。你需要

(c = getchar()) != '\n'