ファイルのデータを入力(読み込み)/iostream・fstream

はてなブックマークに追加はてなブックマーク Yahoo!ブックマークに登録 ニフティクリップに追加 Livedoor クリップに追加 BuzzurlにブックマークBuzzurlにブックマーク Twitterに投稿  

C++のファイルI/O(入出力)は、入出力に使用するiostreamクラスを利用します。
#include は、これまでも何度も登場してきました。

ディスクファイルへのI/Oを実行するには、std::ifstream、std::ofstream、std::fstreamクラスを用い、インクルードファイルを使います。

を用いて、データファイルの数字を読み込み、それぞれの数字および、合計を出力するプログラムの例です。
まずは、読み込みようのファイルを用意します。

numbers.dat

12 34
56
345  45677
7867 11     456

プログラム本体。

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <assert.h>
 
int main() {
    const int DATA_SIZE = 8;    // データ数
    int data_array[DATA_SIZE];    // データ
    std::ifstream data_file("numbers.dat");    // 入力ファイル
    int i;
 
    if (data_file.fail()) {
        std::cerr << "Error: Could not open\n";
        exit (8);
    }
 
    for (i = 0; i < DATA_SIZE; ++i) {
        assert(i >= 0);
        assert(i < static_cast<int>(sizeof(data_array)/sizeof(data_array[0])));
        data_file >> data_array[i];
    }
 
    int total;    // 数値の合計
 
    total = 0;
    for (i = 0; i < DATA_SIZE; ++i) {
        assert(i >= 0);
        assert(i < static_cast<int>(sizeof(data_array)/sizeof(data_array[0])));
 
        std::cout << data_array[i] << "\n";
 
        total += data_array[i];
    }
 
    std::cout << "\nTotal of all the number is " << total << "\n";
 
    return 0;
}

「data_file >> data_array[i];」と>>演算子を用いることで、配列に格納されたファイル中の数字を一つずつ読み込んでいます。
実行結果。

12
34
56
345
45677
7867
11
456
 
Total of all the number is 54458

日時: 2008年06月11日 12:19
コメントを投稿






トラックバック

■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/256

この記事にトラックバックされる方は、参照先が分かるようにするために、「ファイルのデータを入力(読み込み)/iostream・fstream」へのリンクをお願いいたします。
以下のHTMLタグをトラックバック送信元ページ内に挿入して下さい。



※この記事へのリンクがない、また関連のないページからのトラックバックは反映されませんので、ご了承下さい。






あわせて読みたいブログパーツ
フィードメーター - C言語とC++勉強ルーム