望洋の解説書『 Cプログラマのための C++入門』は、いつも途中でくじける #解説書 #C++

今回は、本箱の整理の一環として、読んで、良かったら本箱に保存、そうでもなかったら、廃棄しようとおもってる。
「どうか、これが、有意義な本でありますように」
あ、でも、問題は、いつ読むか、か

普通の c 言語は文字列を扱うのが面倒。c++ は、高機能さが中途半端で、微妙に使えない。そこで、c++ 用の、小さいマクロ・関数ライブラリーを、ちょっとずつ作っている。
以下がその例。ヘッダファイルなどに書く。#include <algorithm> をインクルードするのを、忘れないように( transform に必要)。
===
===#include <algorithm>
//配列の個数を返すマクロ関数
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
//引数にした変数を変数名を示す文字列リテラルとして返すマクロ関数
#define STR(var) #var
//ストリングを大文字に変えるマクロ関数
#define STRING_TO_UPPER(str_value) transform(str_value.cbegin(), str_value.cend(), str_value.begin(), toupper);
//ストリングを小文字に変えるマクロ関数
#define STRING_TO_LOWER(str_value) transform(str_value.cbegin(), str_value.cend(), str_value.begin(), tolower);
作っておけば、後々便利に使える、C++ の小っちゃい関数群、その1。
#include
//配列の個数を返すマクロ関数
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
//引数にした変数を変数名を示す文字列リテラルとして返すマクロ関数
#define STR(var) #var
/// string 文字列を大文字にしてから比較する
/// true:両者の大文字表記が等しい場合
bool str_stringL(std::string str1, std::string str2)
{
STRING_TO_UPPER(str1)
STRING_TO_UPPER(str2)
if (str1==str2){
return true;
}
return false;
}
///数値の桁数を返す(割り算式)
unsigned int countDigit(unsigned long number)
{
unsigned long n_digit = 0; //桁数
while (number != 0){
number = number/10;
n_digit++;
}
return n_digit;
}
///数値の桁数を返す(文字数カウント式)
unsigned int countDigitByStr(unsigned long number)
{
return std::to_string(number).length();
}
今作っている、プログラムが動かなくなってしまった。最初は動いていたのに、新しい仕様をコーディングしたら、動かなくなった。
変更前に作ったデータを入れると、まともに動く。変更した今の状態で、同じようにデータを作ると、動かない。
「たすけてぇ~」
動くデータがあると言うだけでも、まだ、修復できる可能性がある。
「明日、必ず動かすぞぉ~!」
てか、動いてくれぇ ('ェ') yoro