所以,我有下面的代碼(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