所以,我有下面的代码(C):scanf函数不会终止
char c = getc(in);
if (c == '(')
...
if (c == '%')
...
if (isdigit(c))
{
int n;
ungetc(c, in);
scanf("%i", &n);
...
}
一切都很好,当我在输入正在阅读从标准输入,但在输入从一个读取时花花公子文件,呼叫scanf
不会终止。
我在呼叫前添加了一些代码,以便在致电scanf
之前查看发生了什么。其中一个例子是后
c = '0'
- 右侧的字符
c
是)
是ungetc
或东西后不冲水缓冲区?可能会发生什么,当输入是stdin
但它不是文件时它可以正常工作? (我不熟悉C中的IO)。
编辑:应该使用fscanf
......男孩是我的脸红。
存储getc'的'结果在'char'变量始终是错误的。 'getc'返回'int'。不过,这与你的问题是分开的。 – 2010-09-06 23:32:20
感谢您的提示。 – Pete 2010-09-06 23:36:59