C 中讀寫txt檔案並分離字元的方法

2022-10-04 00:15:22 字數 1491 閱讀 3046

在實際工程中,經常遇到需要讀取txt檔案,txt檔案中存的是一些小數或者整型資料,在c++中,可以利用string類和ifstream庫檔案對txt進行的讀取,不過讀回的資料經常是以字串的形式返回,一般是txt的一行為乙個字串返回。那麼如何從字串中分離出整數或者是小數就涉及到字串的分割問題,下面就該問題進行總結。

一、c++中txt檔案的讀取

需要讀取的txt檔案如下:

**如下:

#include

#include程式設計客棧;

#include

using namespace std;

int main()

infile1.close(); //關閉檔案

cin.get();

return 0;

}執行結果如下:

注意:(1)函式getline是一行一行讀取txt檔案,讀回的結果以字串的形式儲存在s中,要讀回具體的資料必須對字串進行分離。

(2)開啟txt必須用到fstream庫中的ifstream類和其open和close成員函式。

(3)檔案讀取後一定要記得關閉檔案,即呼叫close函式

wjllgzzmp二、字串的分離

1讀取的txt中只有整形的情況(要讀回的txt檔案如上圖中所示)

**如下:

#include

#include

#include

using namespace std;

//如果字串中都是整數

void stringtonum1(string s, int* pdata)

//剛讀取了資料

if(temp) //判斷是否完全讀取乙個資料

}} int main()

infile1.close();

cin.get();

return 0;

}wjllgzzmp

執行的結果如下:

順利地讀取了每行資料並分離出了整型資料儲存在了陣列中。

注意:(1)字元在系統中以其ascii碼儲存,對於數字字元要得到其實際的值,必須減去『0'字元的ascii碼,之後的ascii碼就與數字字元的資料一致。

(2)基本思想:當遇到乙個字元是資料後,不停的迴圈讀後面的字元,直到遇到不是數字字元為止。

2讀取的txt中有小數的情況

讀回的txt如下圖所示:

分離字元的函式如下:

//wjllgzzmp如果字串中有小數

void stringtonum2(string s, double* pdata)

}//沒有遇到小數點

else

}//剛讀取了資料

if(temp)}}

執行結果如下:

基本思想:在原先的基礎上不僅要判斷是否遇到了數字字元還需要判斷是都遇到了小數點『.'字元,如果遇到小數點字元,將後面的資料迴圈讀取直到遇到不是數字字元為止。但是需要將其存為小數,有移位。

本文標題: c++中讀寫txt檔案並分離字元的方法

本文位址:

C 讀寫txt檔案

首先windows 7中的txt文件中,預設每行末尾會加 r 和 n 表示此行結束。回車表示游標移到行首,換行表示游標移至下一行,所以二者要配合使用。因此利用string的split函式讀取txt檔案是就需要額外加入換行符和回車符作為分隔符。例外一點就是split函式讀取至每行結束時,雖然行尾換行符...

c 讀寫txt檔案

最近專案又遇到了乙個問題,最初我把上傳失敗的記錄儲存在配置檔案中,這個失敗的記錄有上百條,導致在配置檔案中的value很長,這樣在vs中就破壞了xml的結構,導致xml不能正確解析。最後決定將這些上傳失敗的記錄單獨儲存在乙個txt文字中,這樣就需要對txt進行讀寫。方法其實還是很簡單的,但是讀寫完一...

C 讀寫檔案txt

為了定量 詳細 準確的獲取資料,寫乙個c 去記錄呼叫的值 include include include windos庫 using namespace std fstream 該資料型別通常表示檔案流,且同時具有 ofstream 和 ifstream 兩種功能,這意味著它可以建立檔案,向檔案寫入...