在 C 中使用 getchar();每次我使用它时它都会移动到下一个字符吗?包括在分配操作中?

using getchar() in C; does it move to the next char every time I use it? Including within assignment operations?

我在用 C 编写程序时正在使用 getchar()(在课程的这一点上还不允许使用 scanf。)我想知道是否每次调用它时它都会移动到下一个;包括在分配操作期间。例如;我正在尝试从控制台读取双精度数据;并确定它的正面是否有负号。如果是这样;我想分配一个变量 neg 为 1(这样我就可以判断最终结果是否应该返回负值),然后我想移动到下一个字符来进行实际的双重计算,而不是。 例如)

    int x = getchar();
      int neg = 0;

      if(x == '-') {
      neg = 1;
    x = getchar(); // will this make it so the next time I use the x        
      }            // variable it will be past the negative sign and to the
                   //first actual digit?

是的,每次调用getchar()都会读取下一个字符(前提是有下一个字符可以读取).

引用 C11,章节 §7.21.7.6

The getchar() function returns the next character from the input stream pointed to by stdin.

如果没有有效可读,

If the stream is at end-of-file, the end-of-file indicator for the stream is set and getchar returns EOF. If a read error occurs, the error indicator for the stream is set and getchar returns EOF.