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);  文件指針在操作完了之后需要關閉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM