数组,字符串,cin cin.getline() cin.get() getline() gets()

来源:互联网 发布:263视频会议登录软件 编辑:程序博客网 时间:2024/05/16 16:55

数组:

 float loans[20];

 loans的类型不是数组而是“float数组。这强调了loans数组是使用float类型创建的

 

 字符串:

 char dog[5] = {'a','b','c','d','e'};       //not a string(不是字符串)

 char dog[5] = {'a','b','c','d','\0'};      //a string(一个字符串)

 

 字符与字符串的区别

 char shirt_size = 's';     ASCII系统上,'s'只是83的另一种写法

 但是"s"表示的是两个字符(s\0字符)组成的字符串。而且“s”实际上表示的是字符串所在的内存地址。因此有下面的语句

 char shirt_size = "s";将内存地址给shirt_size由于地址在c++中是一种独立的类型,因此c++编译不允许这种不合理的做法

 

 cin  cin.get  cin.getline getline gets getchar

 cin>>是如何确定已经完成字符串输入的?

        由于不能通过键盘输入空字符,因此cin要有别的方法来确定字符串的结尾位置。cin使用空白(空格,制表符和换行符)

        来定字符串的界。这意味着cin在获取字符数只读取一个单词。

 cin.get()

        用法1.可以用来接收字符

        如:cin.get()     输入agfgsdfg 输出a

        用法2.可以用来接收一行字符串,可以接收空格

        如:cin.get(字符数组名,接收字符数目(20))     

            输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)

            输出:abcdeabcdeabcdeabcd       (接收19个字符+1'\0'

 cin.getline()接收一个字符串,可以接收空格并输出

    延伸:

    cin.getline()实际上有三个参数,cin.getline(接受字符串的看哦那间m,接受个数5,结束字符)

    当第三个参数省略时,系统默认为'\0'

    如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk

    cin.get()cin.getline()区别是两个函数都读取一行输入,直到到达换行罕。然后,随后getline()

    将丢弃换行符,而get()将换行符保留在输入序列中如下:

    char name[10];

    cout<<"Enter your name: ";

    cin.getline(name,10);

    用户输入Jub来作出响应,然后按下回车

    Enter your name: jud

 getline()  接受一个字符串,可以接收空格并输出,要包含"#include<string>"

 gets()     接受一个字符串,可以接收空格并输出,要包含"#include<string>"

 getchar()  接受一个字符,可以接收空格并输出,要包含"#include<string>"

    char ch;

    char = getchar();

    cout<<ch<<endl;

    输入fasdfasdf

    输出f

原创粉丝点击