Just a Computer Graphics Studio & My Life

[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)" (3)

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

    喜歡

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

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

    喜歡

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

    喜歡

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

你正使用 WordPress.com 帳號留言。 登出 / 變更 )

Twitter picture

你正使用 Twitter 帳號留言。 登出 / 變更 )

Facebook照片

你正使用 Facebook 帳號留言。 登出 / 變更 )

Google+ photo

你正使用 Google+ 帳號留言。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: