読者です 読者をやめる 読者になる 読者になる

個人的自由ノート

ふと自分が気になった事を書いてます

C++で問題を解く

JDKMinGWを使って思ったことは、PowerShellコンパイルするとき、日本語が文字化けしてしまうことです。コンパイルのオプション指定すれば回避できますが、面倒なので違うターミナルに引っ越そうかなぁと考えてます。使ってるエディタにも原因はありますね。Atomエディタを使っているので文字コードUTF-8になってしまいます。まあ、これが一番の原因ですが、その他の面で、やっぱり使ってると便利ですね。

#ifndef CLASS_COUNTER
#define CLASS_COUNTER

#include <climits>

class Counter {
  unsigned cnt;
public:
  Counter() : cnt(0) {}
  operator unsigned() const { return cnt; }
  bool operator!() const { return cnt == 0; }
  Counter& operator++() {
    if(cnt < UINT_MAX) cnt++;
    return *this;
  }
  Counter operator++(int) {
    Counter x = *this;
    ++(*this);
    return x;
  }
  Counter& operator--() {
    if(cnt > 0) cnt--;
    return *this;
  }
  Counter operator--(int) {
    Counter x = *this;
    --(*this);
    return x;
  }
};

#endif
#include <iostream>
#include "q12_1.h"

using namespace std;

int main(void){
  int no;
  Counter x;
  Counter y;

  cout << "カウントアップ回数 : ";
  cin >> no;

  for(int i = 0; i < no; i++)
    cout << x++ << ' ' << ++y << endl;

  cout << "カウントダウン回数 : ";
  cin >> no;

  for(int i = 0; i < no; i++)
    cout << x-- << ' ' << --y << endl;

  if(!x)
    cout << "xは0です。" << endl;
  else
    cout << "xは0ではありません。" << endl;

  return 0;
}