我有一个results.txt
文件,在第七行我有如下形式的数字:
3 5 6 1 9 7 4
我想收集信息,其中有多少,有> 5
多少< 5
。
我怎样才能为他们所有人做这个过程?
顺便说一句,第七行是文件的最后一行。
我有一个results.txt
文件,在第七行我有如下形式的数字:
3 5 6 1 9 7 4
我想收集信息,其中有多少,有> 5
多少< 5
。
我怎样才能为他们所有人做这个过程?
顺便说一句,第七行是文件的最后一行。
要跳过输入文件中的 1 行:
fscanf(f, "%*[^\n]\n");
要从文件中读取 1 个数字:
int number;
fscanf(f, "%d", &number);
将数字与 5 进行比较:
if (number < 5)
{
...
}
PS 网站http://www.cplusplus.com有一些你需要的基本东西的例子。该站点专用于 C++,但在您的水平上,C 和 C++ 之间的差异很小,您可以将示例用于您的工作(如果您理解它们)。
示例:fscanf(在页面底部)
#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
尚未到达末尾时更改第一个以阅读。