C/C++文件——數據寫入、讀取


 

這幾天看了C++ plus上的文件寫入、讀取方面的內容,可以說只是有個大概的了解。鑒於OpenCV中需要保存提取到的圖像邊緣的坐標值,加上有同學問起,所以打算做一個簡短的總結。

1、C++中涉及到的文件寫入類是ofstream,可以聲明其對象,然后調用類中成員函數進行文本創建、數據寫入等操作。

下面來看一下簡單實例,后面的例子頭文件及main()就不重復給出了:

 1 #include <fstream>
 2 #include <iostream>
 3 #include <stdio.h>
 4 
 5 using namespace std;
 6 
 7 const int n=10;  //這里只是對10個數據進行操作
 8 
 9 int main() {
10     ofstream fout("file1.txt"); //創建待寫入數據文件
11   for(int i = 0; i < n; ++i) {
12     fout.width(2);  //設定寬度為2,默認右對齊
13     fout<<i<<"\n";  //依次寫入數據,其他類型原理相同
14   }
15   fout.close();  //關閉文件,寫入成功
16 
17   return 0;
18 }

到這里,數據就成功寫到文件“file1.txt”中了,下面可以對其中數據進行讀取並輸出(或改動后按照上述方法寫到另一文件中):

1 ifstream fin;  
2 fin.open("file1.txt");  //用成員函數open()打開已經存在的文件
3 int m=0;
4 for (int i = 0; i < n; ++i) {
5   fin>>m;
6   cout<<m<<"\n";
7 }
8 fin.close();

2、下面這段代碼是用C語言實現的,頭文件“stdio.h”在上面程序開頭已經包含進來了:

 1 FILE* fpout;
 2 fpout = fopen("file2.txt", "w");   //第二個參數“w”代表只准寫入
 3 for (int i = 0; i < n; ++i) {
 4   fprintf(fpout, "%d\n", i * i);  //此函數把數據寫入文本
 5 }
 6 fclose(fpout);
 7 
 8 FILE *fpin;
 9 fpin=fopen("file2.txt", "r");  //只讀
10 int num;
11 for (int i = 0; i < n; ++i) {
12   fscanf(fpin, "%d", &num); //此函數把文件中讀取出來的數據賦給接收變量
13   printf("%d\n", num);
14 }
15 fclose(fpin);

還有很多相關知識點,比如類似函數及其中參數的選擇。這里沒有一一給出,進一步學習中。 


免責聲明!

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



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