例外とエラー
呼び出し側で回復可能な異常は例外で伝えられます。#include <stdexcept>が必要です。
安全な割り算C++
double divide(double a, double b) {
if (b == 0) throw std::invalid_argument("0では割れません");
return a / b;
}
try { std::cout << divide(10, 0) << '\n'; }
catch (const std::invalid_argument& error) { std::cout << error.what() << '\n'; }実行結果OUTPUT
0では割れませんファイルの読み書き
出力にstd::ofstream、入力にstd::ifstreamを使います。#include <fstream>が必要です。書き込み側をスコープで囲むと、スコープを抜けるときにファイルが自動で閉じられます。
保存して読むC++
#include <fstream>
#include <iostream>
#include <string>
int main() {
{
std::ofstream output{"memo.txt"};
if (!output) return 1;
output << "C++を学習中\n";
}
std::ifstream input{"memo.txt"};
std::string line;
std::getline(input, line);
std::cout << line << '\n';
}実行結果OUTPUT
C++を学習中練習
ファイルが存在しない場合にエラーメッセージを表示し、存在する場合だけ内容を読み込むプログラムを作ってみましょう。
