首页 > 代码库 > c语言从文件中读取数据作为输入

c语言从文件中读取数据作为输入

这次在厦门大学夏令营机试中遇到一个问题,它要求数据输入一定要从文件中输入,而不是从命令行中输入。

当时我并不知道这个,所以机试我就GG了,回来之后立马翻看了书,查了资料。现在是搞清楚了。

 

 1 #include <stdio.h>
 2 
 3 // 计算斐波拉契数列
 4 
 5 int fib(int n)
 6 {
 7     if(n == 0 || n == 1)
 8         return n;
 9     else
10         return fib(n-2) + fib(n-1);
11 }
12 
13 int main()
14 {
15     int n, i;
16     FILE *pf, *op;
17     pf = fopen("input.txt", "r");
18     op = fopen("output.txt", "w");
19     fscanf(pf, "%d", &n);
20     for(i = 0; i <= n; i++)
21         fprintf(op, "%d\n", fib(i));
22     fclose(pf);
23     fclose(op);
24     return 0;
25 }

我这里写了一段用递归求斐波拉契数列的简短程序。

使用文件输入就是在scanf的基础上,在上文件指针初始化、赋值,操作,关闭指针这四个步骤。

初始化: FILE *pf

赋值:pf = fopen("input.txt", "r");  后面的一个参数 r,w,r+等分别表示 只读,只写,二进制只读 方式打开文件

操作:fscanf(pf, "%d", &n); 这里跟scanf操作类似,只是fcanf函数里多了一个 文件指针变量。

关闭: fclose(pf);  文件指针在操作完了之后需要关闭。

 

c语言从文件中读取数据作为输入