c++.code.1

    最近在看《C++程序设计语言》,里面有些代码和《C程序设计语言》的思路差不多,记录一下代码,算是强迫自己敲一遍,顺便记录下自己的看书进度。今天看了P19--P95,课后习题没有细作,因为之前有点基础,所以看这本书的时候不是特别困难。

1.一个用来返回各种数值的范围的小程序
<pre name="code" class="cpp">#include <iostream>
#include <limits>
#include <typeinfo>
template<typename T>
struct Type{
    static void print(){
        std::cout << typeid(T).name() << ": range is ("
            <<std::numeric_limits<T>::min() << ","
            <<std::numeric_limits<T>::max() << ")\n";
    }
};
int main(){
    Type<char>::print();
    Type<short>::print();
    Type<int>::print();
    Type<long>::print();
    Type<float>::print();
    Type<double>::print();
    Type<long double>::print();
    Type<unsigned>::print();
    return 0;
}


 
   今天群里有个大神说在.h文件中不要出现using namespace std;的语句,还不太能理解,难道是可能出现递归地一直include?先记录下来吧。

2.写一个程序打印出字母a,b,...,z和数字0,1,...9,以及他们的整数值。对所有其他可打印字符做同样的事情,再用十六进制形式做同样的事情。

<pre name="code" class="cpp"><pre name="code" class="cpp">#include <iostream>

char const char_table[] = "abcdefghijklmnopqrstuvwxyz0123456789-*&@";

int main(){
    //第一个和第二个是一种情况,因为十进制是默认形式
    for(int k = 0;k < sizeof(char_table)-1;k++)
        std::cout << char_table[k] << "\t"
                << std::dec << int(char_table[k]) << std::endl;

    for(int k = 0;k < sizeof(char_table)-1;k++)
        std::cout << char_table[k] << "\t"
                << int(char_table[k]) << std::endl;
    //显示指定为十六进制
    for(int k = 0;k < sizeof(char_table)-1;k++)
        std::cout << char_table[k] << "\t"
                << std::hex << int(char_table[k]) << std::endl;

    return 0;

}


 
 

 

3.打印月份和天数
<pre name="code" class="cpp">#include<iostream>
#include<string>

struct Month{
    //char const *name;
    std::string name;
    int length;
};

const int n_months = 12;
const Month month[n_months]
            = {{"January",31},{"February",28},{"March",31},{"April",30},{"May",31},{"June",30},
                {"July",31},{"August",31},{"September",30},{"October",31},{"November",30},{"December",31}};


int main(){
    for(int k = 0;k != n_months;k++)
        std::cout  << month[k].name << ":\t" << month[k].length << std::endl;

    return 0;
}

比较奇怪,对不齐,还是基础不够好,对齐的代码写不出来。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值