Just My Life & My Work

[C++] 讀取檔案 (Read File)

現在人工輸入的方式已經落伍,在今日海量資料之下,我們想要迅速分析資料,第一個關鍵步驟就是讀取檔案 (Read File)。恰好我遇到需要讀檔,才發現之前沒有寫在部落格中,以致我還要去翻過去寫的code,才想起原來讀檔那麼簡單!

讀檔其實有幾種方法,在這裡我用一次讀取一行的技巧來讀取檔案裡的資料。我準備一個檔案叫做:HappyMan.txt,裡頭有這些字元~

廣告

接下來就是非常簡單的讀檔程式:

廣告
/**
	Theme: Read File
	Compiler: Dev C++ 4.9.9.2
	Date: 101/04/15
	Author: HappyMan
	Blog: https://cg2010studio.wordpress.com/
*/

#include<iostream>
#include<fstream>
using namespace std;

#define SIZE 100
char line[SIZE];

int main(){
	fstream fin;
	fin.open("HappyMan.txt",ios::in);
	while(fin.getline(line,sizeof(line),'\n')){
		cout<<line<<endl;
	}

	system("pause");
	return 0;
}

輸出結果:

廣告

重點在這一行:

  • fin.getline(line,sizeof(line),’\n’)

若你將‘\n’該為‘ ‘,也就是中斷點原本行結束字元,變成空白字元,結果會變成:

再將其改為‘\t’,是所謂的tab鍵(tabulator 製表符),結果如下:

觀察三者輸出差異,再對照我檔案裡的資料圖,可以發現day!前面是tab字元喔!

廣告

要注意的是,無論是否遇到getline第三個參數那個字元,此函式會以一行作為處理對象,就如同它的函式名稱一樣,於是如果確定讀取一整行,那麼第三個參數可以省去不寫。

廣告

Comments on: "[C++] 讀取檔案 (Read File)" (4)

  1. […] 程式中的讀檔部分,我是抄過去的文章C++讀取檔案 (Read File),才幾行code又能完成讀檔任務,接著就是列印出來。 […]

  2. […] 先前介紹讀取檔案 (Read File),是以一行一行逐步讀取,現在我們想要一次讀取整個檔案為字串,再來做其它處理,這樣可以怎麼實作呢? […]

  3. 目前須讀取不同檔名.txt中的特定某行數據資料,以利研究
    請問~可以嗎?

    例如:
    1 150 32
    2 8 99
    3 22 11
    .
    15 10 20
    .
    .
    欲讀取固定15行中的數據
    有程式碼更好
    謝謝!

  4. 請問如果我想要把讀進來的檔案(中文字)一字一字輸入一個陣列中,要加什麼呢?

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲