課題1(4/14出題)


課題

行単位での入力は,stringに対してgetlineで読み込むのが楽です.例として行を読み込んでvectorに貯めて,ファイルの最後まで読み込んだら出力するだけのC++プログラム0.ccを紹介します.
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main(){
  vector<string> lines;
  for (string line; getline(cin, line); ){
    lines.push_back(line);
  }
  for (size_t i = 0; i < lines.size(); ++i){
    cout << lines[i] << endl;
  }
}

出力例

チェック用に,テスト用の入力sample.txtと1-9の出力例を示します(9は乱数を使うので, 答えが一致している必要はありません).1-8の出力例に誤りを見つけたら指摘す ると評価が高くなります. たとえば,サンプルのプログラム 0.cc の場合は,
g++-mp-4.9 -std=c++11 -o 0 0.cc
としてコンパイルして,作成された実行ファイル(Mac環境では 0 )を
./0 < sample.txt > 0.out
として実行すると,ファイル 0.out が作られる.
diff 0.out 0.txt
を実行して出力例と一致していることを確認する.

ヒント

STLのうちの以下のデータ構造を用いる(リンク先は http://www.cpluscplus.com )と良いでしょう.

提出方法

作成したすべてのプログラムと,各プログラムに関する簡単な説明をまとめた プレインテキスト形式(テキストエディタで編集可能な形式)またはPDF形式の ファイルを1つ作成して,ITC-LMSの「課題1(4/14出題)」(4/14の講義時間中に公開される予定)に提出してください.

2問解けない場合は1問でも提出して構いません.

締切は,5/1(金) 23:59.締切を過ぎても2014年7月末までは6割を上限に採点します.


オプション課題

課題だけで物足りない人は,以下のオプション課題にも取り組んでください.