我有一个results.txt
文件,在第七行我的数字形式如下:
3 5 6 1 9 7 4
我想收集信息中有多少> 5
以及其中有多少< 5
。
我如何为所有人完成此过程?
顺便说一句,第七行是文件的最后一行。
答案 0 :(得分:1)
答案 1 :(得分:1)
要在输入文件中跳过1行:
fscanf(f, "%*[^\n]\n");
从文件中读取1个数字:
int number;
fscanf(f, "%d", &number);
将数字与5进行比较:
if (number < 5)
{
...
}
P.S。网站http://www.cplusplus.com提供了一些您需要的基本内容示例。该站点专用于C ++,但在您的级别上,C和C ++之间的差异很小,您可以将这些示例用于您的工作(如果您了解它们)。
示例:fscanf(位于页面底部)
答案 2 :(得分:1)
#include <stdio.h>
#define LINE_MAX 1024
int main() {
int line_count = 7;
int fd = open('file', r);
int smaller_than_five = 0, bigger_than_five = 0;
int number;
while (line_count != 0) {
fgets(input_line, LINE_MAX, fd);
line_count--;
}
while(sscanf(input_line, "%d", &number) != EOF) {
if (number > 5) bigger_than_five++;
else if (number < 5) smaller_than_five++;
}
/*
* Now you have:
* smaller_than_five which is the count of numbers smaller than five
* bigger_than_five which is the count of numbers bigger than five
*/
return 0;
}
当数字在第七行时,这是有效的。如果它们位于最后一个(但可能是第二个或第51个),则必须在未到达时更改要读取的第一个while
。