zoukankan      html  css  js  c++  java
  • cin,scanf,gets,getline,cin.getline对于字符串的输入

     1 //cin: 
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cmath>
     5 #include<cstring>
     6 #include<algorithm>
     7 using namespace std;
     8 int main()
     9 {
    10   char a[20];
    11   cin>>a;
    12   cout<<a<<endl;
    13 }

    cin只接收一个字符串,遇空格,回车就结束
    输入:jkljkljkl
    输出:jkljkljkl

    输入:jkljkl jkljkl //遇空格结束
    输出:jkljkl

     1 //cin.getline : 
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cmath>
     5 #include<cstring>
     6 #include<algorithm>
     7 using namespace std;
     8 int main()
     9 {
    10   char a[20];
    11   cin.getline(a,5);
    12   cout<<a<<endl;
    13 }

    <iostream>
    接收一个字符串,可以接收空格并输出
    输入:jkljkljkl
    输出:jklj

    输入:ab fvtd
    输出:ab f

    接收5个字符到a中,其中最后一个为'',
    所以只看到4个字符输出;

    如果把5改成20:
    输入:jkljkljkl
    输出:jkljkljkl

    输入:jklf fjlsjf fjsdklf
    输出:jklf fjlsjf fjsdklf

    延伸:
    1、cin.getline()实际上有三个参数,
    cin.getline
    (接收字符串的变量,接收字符个数,结束字符)
    2、当第三个参数省略时,系统默认为''
    3、如果将例子中cin.getline()
    改为cin.getline(a,5,'a');
    当输入jlkjkljkl时
    输出jklj,
    输入jkaljkljkl时,
    输出jk




    输入:
    qwertyuiop
    qwert 123 456
    isabvgfewrjnv kjsbd

    输出:
    qwertyuiop //m[0]
    qwert 123 456 //m[1]
    isabvgfewrjnv kjsbd //m[2]

     1 cin.getline 在多维数组里的用法:
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cmath>
     5 #include<cstring>
     6 using namespace std;
     7 int main()
     8 {
     9   char a[3][20]; //大概3是限制字符串个数的
    10            //20是限制每个字符串长度的 。大概吧。
    11   for(int i=0;i<3;i++) 
    12            //这个地方必须从0开始 
    13   cin.getline (a[i],20);
    14   for(int i=0;i<3;i++)
    15   cout<<endl<<a[i];
    16   return 0;
    17 } 




    <cstring>
    接收一个字符串,可以接收空格并输出。
    输入:jkljkljkl
    输出:jkljkljkl

    输入:jkl jfksldfj jklsjfl
    输出:jkl jfksldfj jklsjfl

     1 getline: 
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<algorithm>
     7 using namespace std;
     8 int main()
     9 {
    10   string a;
    11   getline(cin,a);
    12   cout<<a<<endl;
    13 }
     1 gets():
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cmath>
     5 #include<cstring>
     6 using namespace std;
     7 int main()
     8 {
     9   char a[22];
    10   gets(a);
    11   printf("%s",a);
    12 }


    <cstdio>
    gets可以读空格,但不读回车
    字符串接收结束后自动加''。
    (应该是用' '代替了'')
    输入: EAFWEG GEWsdv( )
    输出: EAFWEG GEWsdv

     1 scanf():
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cmath>
     5 #include<cstring>
     6 using namespace std;
     7 int main()
     8 {
     9   char a[22];
    10   scanf("%s",a);
    11   printf("%s",a);    
    12 }


    <cstdio>
    不接收空格,回车
    输入:
    wrbe awegfre
    输出:
    wrbe

     

    getchar():
    只接收一个字符(第一个)

    参考: http://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html

  • 相关阅读:
    Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决)
    关于dubbo的provider和consumer都配置timeout超时时间的情况
    cas单点登录-CAS5.1.3 overlay服务器搭建(二)
    cas单点登录-https的配置(一)
    mysql5.6性能优化
    jvm面试题
    关于Class.getResource和ClassLoader.getResource的路径问题
    构建流式计算卖家日志系统应用实践
    在分布式系统里看CAP定理
    bootstrap插件(对话框)bootbox参数和自定义弹出框宽度设置
  • 原文地址:https://www.cnblogs.com/Mary-Sue/p/8678462.html
Copyright © 2011-2022 走看看