• C++primerplus书摘2(第五到第八章)


    1.字符函数

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<cctype>
     6 using namespace std;
     7 /*
     8 需要添加 #include<cctype>
     9 isalnum() 如果参数是字母数字,即字母数字,该函数返回>0否则为0
    10 isalpha() 如果参数是字母,该函数返回>0否则为0
    11 iscntrl() 如果是控制字符,返回>0否则为0
    12   控制字符是不可打印字符。可打印的字符是可以从键盘上输入的字符
    13 第0~32号及第127号(共34个)是控制字符或通讯专用字符。
    14 如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)等
    15 通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等
    16 
    17 isdigit() 如果参数是0~9,返回true
    18 isgraph() 如果参数除空格以外的打印字符,返回>0否则为0
    19 islower() 如果参数是小写字母,返回true
    20 isprint() 如果参数是打印字符包括空格,返回true
    21 ispunct() 如果参数是标点符号,返回true
    22 isspace() 如果参数是标准空白字符,如空格、进纸、换行符、回车、水平制表符,返回true
    23 isxdigit() 如果参数是十六进制数字,返回true
    24 tolower() 如果参数是大写字符,则返回其小写,否则返回该参数
    25 toupper() 如果参数是小写字符,则返回其大写,否则返回该参数
    26 */
    27 int main()
    28 {
    29    cout<<isalnum('+')<<" "<<isalnum('9')<<endl;
    30    cout<<isalpha('a')<<" "<<isalpha('8')<<endl;
    31    cout<<iscntrl('')<<" "<<iscntrl('a')<<endl;
    32    cout<<isdigit('a')<<" "<<isdigit('0')<<endl;
    33    cout<<isgraph(' ')<<" "<<isgraph('1')<<" "<<isgraph('1')<<endl;
    34    cout<<islower('a')<<" "<<islower('A')<<endl;
    35    cout<<isxdigit('A')<<" "<<isxdigit('1')<<endl;
    36    cout<<toupper('a')<<" "<<toupper(1)<<" "<<toupper('1')<<endl;
    37    cout<<tolower('A')<<" "<<tolower('1')<<endl;
    38     return 0;
    39 }

    2.简单文件的输入输出

    写入到文件

     1)必须包含头文件iostream,头文件iostream 定义了一个用处理输出的ostream类,声明了一个名为cout的ostream变量(对象)

     2)必须指明名称空间std;

     3)必须包含头文件fstream,定义了一个用于处理输出的ofstream类,需要声明一个或多个ofstream变量(对象)

     4)必须指明名称空间std

     5)需要将ofsream对象与文件关联起来,方法之一是使用open(),使用完文件后,应使用方法close()将其关闭

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<fstream>
     6 using namespace std;
     7 char a[50];
     8 int year;
     9 double aprice;
    10 double bprice;
    11 int main()
    12 {
    13    ofstream outFile;
    14    outFile.open("key.txt");
    15    cin.getline(a,50);
    16    cout<<"aprice:"<<endl;
    17    cin>>aprice;
    18    cout<<"bprice:"<<endl;
    19    cin>>bprice;
    20    outFile<<"Make and model:"<<a;
    21    outFile<<"aprice:"<<aprice;
    22    outFile<<"bprice:"<<bprice;
    23    outFile.close();
    24     return 0;
    25 }

    读取文件

     1)头文件iostream定义了一个用处理输入的istream类

     2)头文件iostream声明了一个名为cin的istream变量

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<fstream>
     6 #include<cstdlib>
     7 using namespace std;
     8 char a[50];
     9 int main()
    10 {
    11     ifstream inFile;
    12     inFile.open("key.txt");
    13     if(!inFile.is_open())
    14     {
    15         cout<<"cannot open the file"<<a<<endl;
    16         cout<<"program terminating"<<endl;
    17         exit(EXIT_FAILURE);
    18     }
    19     double value;
    20     double sum=0.0;
    21     int num=0;
    22    23     while(inFile.good())
    24     {
    25         ++num;
    26         sum+=value;
    27         inFile>>value;
    28     }
    29     if(inFile.eof())
    30     cout<<"end of file reached."<<endl;
    31     else if(inFile.fail())
    32         cout<<"input terminated by data mismatch"<<endl;
    33     else
    34         cout<<"input terminated for unknown reason"<<endl;
    35     if(num==0)
    36     cout<<"no data processed"<<endl;
    37     else
    38     {
    39         cout<<num<<endl;
    40         cout<<sum<<endl;
    41         cout<<sum/num;
    42     }
    43     inFile.close();
    44     return 0;
    45 }


    3.数组与指针

    arr[i]=*(arr+i);

    &arr[i]=arr+i;

    4.arr2[r][c]

    arr2 指针

    arr2+r 指向arr2+r指针

    *(arr2+r) 即arr2[r]

    *(arr2+r)+r 即arr2[r]+2

    *((arr2+r)+c) 即arr2[r][c]

    5.int data[3][4]={{1,2,3,4},{5,6,7,8,9},{2,4,6,8}};

    正确的原型 int sum(int (*ar2)[4],int size); int sum(int ar2[][4],int size);

    声明一个4个指向int的指针组成的数组,而不是由4个int组成的数组的指针;指针类型指定了列数,这就是没有将列数作为独立的函数参数进行传递的原因。

    6.const数据或非const数据的地址赋给指向const指针,但只能将非const数据的地址赋给非const指针。

  • 相关阅读:
    .net String.Format数字格式化输出
    sql prompt5安装好了,也破解完成了,然后到SQL里面还是没有提示是为什么?
    DataSet筛选数据然后添加到新的DataSet中引发的一系列血案
    .net 时间戳互相转换(精确到毫秒)
    记录一次MVC 3.0错误 HTTP 404您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
    IIS7部署项目时提示:"错误消息 401.2。: 未经授权: 服务器配置导致登录失败。"的解决办法
    IIS发布网站出现“未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。”的解决方法
    微信支付(APP)集成时碰到的问题(.net提示“无权限”、iOS跳转到微信支付页面中间只有一个“确定”按钮)
    由SpringMVC中RequetContextListener说起
    关于cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题(不需要修改任何代码,只需要一个配置)
  • 原文地址:https://www.cnblogs.com/zuiaimiusi/p/11196751.html
Copyright © 2020-2023  润新知