zoukankan      html  css  js  c++  java
  • 字符和字符串的输入输出(经典)

    1.getchar()                      可以输入字符

    getchar()   //接受一个字符,需包含“#include<string>
     
    #include<iostream>
    #include<string>
    using namespace std;
    int main ()
    {
           chara; 
           a=getchar();           //   getchar( a )--------写法错误
           cout<<a<<endl;
           return0;

     
    输入:abc
    输出:a

     

     --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    2.cin.getline()//---不提取 回车                  可以输入字符串
         

    cin.getline(字符数组 /字符指针,字符个数n,终止标志字符);//终止字符可以不写,默认为' '
     
    可跳过终止符号。
    即每次读取一整行并把由Enter键生成的换行符抛弃
     
     
    返回值:此处还待研究,求大神指导。

     

     --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    3.getline()-----------用于  string  字符串的。         可以输入字符串(针对string)
     

    getline()     // 接受一个字符串,可以接收空格并输出,需包含“#include<string>
     
     
    #include <iostream> 
    #include <string>
    using namespace std; 
    void main(void) 

           string a;
           getline(cin,a); 
           cout<<a<<endl; 
    }     
     
    上面代码,如果输入a b c,需要按两次回车键才能显示a b c(在VC6中),因为getline有三个参数, 第三个参数是字符串的结束符,也就是当getline遇到这个结束符时,就不在接受输入了,比如写成getline(cin,st,'s'); 即使输入的是abcsabc 那么也只会显示 abc ,因此对于上面出现的情况,有人说getline默认情况下以回车(' ')作为结束符,第一次按回车表示字符串结束,第二次按回车才开始输出。
     
     

     --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    4.gets() ////-----跟  cin.getline()类似,不提取  回车        可以输入字符串


    gets()        // 接受一个字符串,可以接收  空格  并输出,需包含“#include<string>
     
    返回值:gets(str) 在读取成功的时候返回str,str保存的是成功读入的内容
    在失败的时候返回NULL,str的内容保持不变
     
    #include<iostream>
    #include<string>
    using namespace std;
    int main()

           chara[20]; 
           gets(a);        //不能写成a=gets();
           cout<<a<<endl;
           return0;
    }   
     
    输入:abc
    输出:abc
     
    输入:a b c
    输出:a b c
     
    类似cin.getline()里面的一个例子,gets()同样可以用在多维数组里面:
     
    #include<iostream>
    #include<string>
    using namespace std;
    int main ()

           chara[3][20];
           for(inti=0;i<3;i++)
                  gets(a[i]);
           cout<<"--------"<<endl;
           for(intj=0;j<3;j++) 
                  cout<<a[j]<<endl;
           return0;

     
    输入:
    a b 1
    a b 2
    a b 3
    输出:
    a b 1
    a b 2
    a b 3  
     
    感觉gets()和cin.getline()的用法很类似,只不过cin.getline()多一个参数罢了;

     

     --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    5.cin.get()           可以输入字符&字符串
     
    (1).cin.get()-------提取单个字符,可以提取回车、空格
    a=cin.get();
     
    (2) 同(1)---------------提取单个字符,可以提取回车、空格
    cin.get(a);

     
    (3).-------------------不提取  回车
    cin.get(字符数组,字符个数n,终止字符);//终止字符可以不写,默认为' '
    或cin.get(字符指针,字符个数n,终止字符);//终止字符可以不写,默认为' '
     
    不可跳过终止符号。需把回车' '提取掉
    可以写成
    cin.get(a,20);
    cin.get();
    也可以组合写成
    cin.get(a,20).get();
     

     

     

     

     

  • 相关阅读:
    java8--面向对象 下(疯狂java讲义3) 复习笔记
    java8--面向对象 上(疯狂java讲义3) 复习笔记
    my.cnf配置详解[转载]
    java8--集合(疯狂java讲义3复习笔记)
    java8--网络编程(java疯狂讲义3复习笔记)
    Technocup 2017
    Technocup 2017
    Technocup 2017
    Technocup 2017
    Codeforces Round #396 (Div. 2) E
  • 原文地址:https://www.cnblogs.com/zswbky/p/5432040.html
Copyright © 2011-2022 走看看