【发布时间】:2012-04-07 19:48:35
【问题描述】:
我有一个文件并使用 fscanf 我只想读取整数并忽略任何字符。
就像文件是这样的:
1 2 一种 5 C 6
(即每行只有一个数字或字符...我想忽略带字符的行) 所以我只需要读取整数值。
有人知道怎么做吗?
谢谢。
【问题讨论】:
-
阅读每一行。标记化。尝试解析。跳过错误。
strtol()的完整界面应该让您一次完成所有这些操作。 -
到目前为止你有什么?它在哪里失败?你有错误吗?另外,第一个值应该变成 1 还是 12?
-
这里有一个提示:
scanf说明符"%*[^0123456789]"将读取所有不是数字的字符并将它们丢弃。但正如其他答案所表明的那样,scanf()家族可能不是解决此问题的最佳方法 - 特别是如果您需要能够读取负数并处理与数字不正确关联的'-'字符。 -
这是我正在做的文件 *fp; fp = fopen (argv[2], "r"); if (fp==NULL) { puts ("\n 无法读取文件");返回0; } 计数 =0; int no_frames,温度,我;大小=argv[1]; fscanf(fp, "%d", &temp); while (!feof(fp)) { pages[count++]=temp; //fscanf(fp,"%d", &temp); fscanf(fp, "%d", &temp); } fclose(fp);大小=atoi(argv[1]);先进先出(); LRU();这个怎么实现?
标签: c