การอ่านไฟล์

การอ่านไฟล์ .txt

จากไลบารี่ fstream เราสามารถใช้ class ifstream ในการอ่านข้อมูลจากไฟล์ .txt ได้

ifstream file("datalogger.txt",ios::in);

โดยการอ่านค่าไฟล์จะต้องประกาศตัวแปรสำหรับนรับค่าจากไฟล์ที่เราได้ทำการมาด้วย

ตัวอย่างที่4: การอ่านข้อมูลจากไฟล์

#include <iostream>
#include <fstream>
using namespace std;
void read_data(){
    int data; //กำหนดตัวแปรสำหรับรับค่าที่อ่านจากไฟล์มาแสดงผล
    ifstream file("datalogger.txt"); //รับข้อมูลจากไฟล์.txt
        while (file>>data){ // ถ้าไม่มีข้อมูลจากไฟล์ส่งเข้าตัวแปร data โปรแกรมจะหยุดอ่าน
          cout << data<<endl;
        } 
        file.close();
    }                          
int main(){
   read_data();
  return 0;
}

compile code กำหนดให้ไฟล์ output ชื่อว่า “read_data”

g++ -o read_data รหัสนิสิต_lab11_datalogger.cpp
./read_data

ผลลัพท์

ตัวอย่างที่5: การอ่านข้อมูลจากไฟล์และเช็คไฟล์

จากตัวอย่างเป็นการอ่านค่าจากไฟล์ datalogger.txt มาเก็บไว้ในตัวแปร data แล้วแสดงผลด้วยคำสั่ง cout ซึ่งจะเป็นการอ่านข้อมูลแค่เพียงบรรทัดเดียว ถ้าต้องการให้อ่านข้อมูลบรรถัดไปจะต้องทำการเขียนโปรแกรมให้อ่านค่าไปเลื่อนๆ

ในกรณีที่ไฟล์ที่ต้องการ อ่านแต่ไม่มีไฟล์อยู่ c++ จะไม่เตือนดังนั้นให้ใส่ code สำหรับตรวจสอบไฟล์ด้วย

#include <iostream>
#include <fstream>
using namespace std;
void read_n_check_file(){
    int data; //กำหนดตัวแปรสำหรับรับค่าที่อ่านจากไฟล์มาแสดงผล
    ifstream file; 
    file.open("datalogger.txt"); //รับข้อมูลจากไฟล์.txt
    if(!file.is_open()){   // ถ้าไม่สามารถเปิดไฟล์ได้ใ้แสดงข้อความ
        cout<< "can't open file\n"; 
    }else{
        while (file>>data){
          cout << data<<endl;
        }
        file.close();
    }                        
}
int main(){
   read_n_check_file();
  return 0;
}

compile code กำหนดให้ไฟล์ output ชื่อว่า “read_n_check_file”

g++ -o read_n_check_file รหัสนิสิต_lab11_datalogger.cpp
./read_n_check_file

Update: May 2023

Author: Soontree Jaikhong (AIC-Researcher)

Author: Thanaluk Pranekunakol (AIC-Researcher)

Last updated

Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University