【发布时间】:2021-09-04 08:01:51
【问题描述】:
我需要读取像“01”这样的数据,但跳过像“1”这样的数据。
我试过fscanf(f, "%2lu ", &ulong),但似乎2是最大长度,不是固定的。
是的,我知道我可以用 %c%c 之类的符号来做到这一点,但阅读代码会更难。
我该怎么办?
【问题讨论】:
-
如果你有
unsigned long ulong,那么fscanf(f, "%lu", &ulong); -
读取一个字符串(
fgets(buf, sizeof buf, stdin)),检查它的长度(strlen(buf) > 2)和内容(if (isdigit((unsigned char)buf[0]) && isdigit((unsigned char)buf[1]))),... -
不要使用
fscanf。用fgets读取字符串,然后手动解析。 -
@WeatherVane 好的,谢谢,但问题仍然存在
-
但是是的问题是什么?请显示输入、输出和预期输出,以及Minimal Reproducible Example,最短的完整代码,显示您尝试过的内容。