在 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
.
我在用 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 bystdin
.
如果没有有效可读,
If the stream is at end-of-file, the end-of-file indicator for the stream is set and
getchar
returnsEOF
. If a read error occurs, the error indicator for the stream is set andgetchar
returnsEOF
.