<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C++中幾種輸入輸出cin、cin.getline()、getline()、sscanf()、sprintf()、gets()等

      1.cin和cout

      cout是輸出流對象的名字,cin是輸入流對象的名字 ,“<<”是流插入運算符(也可稱流插入操作符〉,作用是將需要輸出的內容插入到輸出流中,默認的輸出設備是顯示器。 “>>”是流提取運算符,作用是從默認的輸入設備(一般為鍵盤〉的輸入流中提取若干字節送到計算機內存區中指定的變量。需要頭文件iostream

      cout語句的一般格式為

      cout<<表達式1<<表達式2<<...<<表達式n;
      cin>>變量1>>變量2>>...>>變量n;
      

      執行cout語句時,并不是輸入-個數據馬上輸出一個數據,而是先把插入的數據順序在放在輸出緩沖區中.直到輸出緩沖區滿或遇到cout語句中的endl(或’\n’ ,endl)為止,此時將輸出緩沖區已有數據輸出并清空輸出緩沖區。

      cin以空格、tab鍵地、換行做為數據問分隔符。接受一個字符串,遇“空格”、“TAB”、“回車”都結束

      char c1,c2;int a;float b;
      cin>>c1>>c2>>a>>b;當輸入1234  56.78,則輸出1  2  34  56.78
      系統會自動判別輸出類型。
      int a=3;float b=4.21;char=’a’;
      cout<<a<<’ ’<<b<<’ ‘<<c<<endl;
      cin的返回值:當成功提取數據返回非0即true,當失敗或文件結束返回0。常用于while(cin>>a){}
      關于cin和scanf,cout和printf的區別和特點請參考一本通中P37內容。前面已經學習了C語言又不是很熟悉cin用法的盡量使用scanf和printf,在處理string類型時使用cin
      2.getline接受一個字符串,可以接收空格
      cin.getline(字符數組(或字符指針),字符個數n,終止標志字符)
      char ch[20];
      cin.getline(ch,20);   //讀取19個字符或遇’\n’結束
      cin.getline(ch,20,’\’); //讀取19個字符或遇’\’結束
      string ch;       //聲明字符串類型
      getline(cin,ch);  //接受一個string字符串,可以接收空格。讀取不限長度字符串到ch。注意上下兩種用法的不同
      

        

      string類型和字符串數組的異同

      string s;

      char str[10];

      string

      字符串數組

      定義具體長度

      不需要

      需要

      s=”Hello!”;

      可直接賦值

      不能,要用strcpy(str1,str2)

      以’\0’為結束符

      只存放字符串本身,不包括’\0’

      直接用==,>,<,>=,!=進行比較

      可以

      不可以,要用函數

      存儲多組字符串

      string s[3]={“jk”,”jkl”,”fds”};

      str[3][20]={“jk”,”jkl”,”fds”};

       

       1 #include<iostream>
       2 //#include<string> //忘記了打也可以在windows的dev cpp通過 ,要考慮到考場上可能不行 
       3 #include<cstring>
       4 using namespace std;
       5 int main()
       6 {
       7     string str;
       8     char c[20];
       9     cin>>str;
      10     cin>>c;
      11     if(str=="ok")            //因str是string類型,可以直接使用=,==,<等 
      12         cout<<"yes"<<endl;
      13     else cout<<"no"<<endl;
      14     if(c=="ok")            //這種寫法錯誤 ,因為c是字符數組,字符數組不是一等公民 
      15     //if(!strcmp(c,"ok"))
      16         cout<<"yes"<<endl;
      17     else cout<<"no"<<endl;
      18         
      19     return 0;
      20 }
      21 /*
      22 由于字符串的本質是數組,它也不是“一等公民”,只能用strcpy(a,b)、strcmp(a,b)、strcat(a,b)來
      23 執行“賦值”、“比較”和“連接”操作。而不能用=、==、<=、+等運算符。上述函數都在string.h中聲明。
      24 */

      3.sprintf函數

      sprintf是個變參函數,定義如下:

      int sprintf( char *buffer, const char *format [, argument] ... );

      此函數的功能是把格式化的數據寫入某個字符串,它的返回值是字符串長度。包含此函數的頭文件是stdio.h。

      例如,本程序中的sprintf(buf,"%d%d%d%d%d",abc,de,x,y,z);語句的功能是將整數abcdexyx打印成字符串存儲在串buff中。

      sprintf函數、printf函數、fprintf函數的區別:

      printf輸出到屏幕,fprintf輸出到文件,而sprintf輸出到字符串。需要注意是應該保證寫入的字符串有足夠的空間。

      4.sscanf函數

      (1)sscanf()表示從一個字符串中讀取與指定格式相符的數據。它的函數原型如下:

      int sscanf( const char *, const char *, …)

      需要的頭文件是stdio.h。

      (2)sscanf與scanf類似,都是用于輸入的,只是后者以鍵盤(stdin)為輸入源,前者以固定字符串為輸入源。

      如果有一個格式為HH:MM:SS的字符串s(例如,"12:34:56"),用一條sscanf語句得到HH、MM、SS的值如下:

      sscanf(s,"%d:%d:%",&HH,&MM,&SS);

      將s替換成"12:34:56",可以得到HH的值為12,MM的值為34,SS的值為56。

      C++中還有一種“字符串流”,可以實現類似sscanf和sprintf的功能:

       1 #include <cstdio>
       2 #include <sstream>
       3 using namespace std;
       4 #define MAXN 100010
       5 int main()
       6 {
       7     char s[1000];
       8     cin.getline(s, 1000, '\n');
       9     stringstream  ss(s);
      10     int a, b;
      11     ss >> a >> b;
      12     count << a+b << "\n";
      13     return 0;
      14 }

      上面的函數先從cin讀取一行。Getline函數的第3個參數是行分隔符。它的默認值就是'\n',因此可以簡化為cin.getline(s,1000),其中1000的含義和fgets中的類似。

      /*讀入兩個整數,中間用空格隔開,輸出他們的和*/

       1 #include <cstdio>
       2 #include <sstream>
       3 #include <iostream>
       4 #include<string>
       5 using namespace std;
       6 #define MAXN 100010
       7 int main()
       8 {
       9     char s[1000];
      10     cin.getline(s,1000,'\n');
      11     //string s;getline(cin,s); //用這句功能類似 
      12     stringstream  ss(s);
      13     int a,b;
      14     ss>>a>>b;  //類似sscanf(s,"%d%d",&a,&b);
      15     cout << a+b << "\n";
      16     return 0;
      17 }

      5.gets

      gets用法gets(s),s是字符數組名,返回值是字符數組起始地址,可以不停往s中存內容不管能不能存下。

       

      6.關于空格的輸入輸出

      輸入字符:          
      char ch;
      cin>>ch //只能輸入非空格非回車字符
      scanf("%c",&ch);//可以輸入任意字符
      ch = getchar();//可以輸入任意字符
      輸出字符:
      cout<<ch;//輸出一個字符
      printf("%c",ch);//輸出一個字符
      putchar(ch);//輸出一個字符
      輸入字符串: 
      char buf[100];
      cin>>buf;//輸入字符串,以空格、回車結束
      gets(buf);//輸入一個字符串,可以包含空格,以回車結束,結尾加'\0'                   cin.getline(buf,100)//輸入一個字符串,可以包含空格,以回車結束,清除結束符
      getline(cin,buf)//輸入一個字符串,可以包含空格,以回車結束,清除結束符
      輸出:
      cout<<buf;//輸出字符串
      canf("%s",buf);//輸出字符串
      puts(buf);//向屏幕輸出字符串,并換行
      

        

      posted @ 2016-05-06 17:37  子止墨  閱讀(2945)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 韩国19禁无遮挡啪啪无码网站| 国产一区二区三中文字幕| 国产精品人妻久久无码不卡| 亚洲av鲁丝一区二区三区黄| 亚洲av色香蕉一区二区| 亚洲精品二区在线播放| 国产在线拍揄自揄拍无码视频| 亚洲欧洲成人a∨在线| 久久综合97丁香色香蕉| 亚洲一区二区三区 无码| 日韩精品久久久肉伦网站| 久久亚洲国产精品五月天| 国语精品一区二区三区| 亚洲成a人无码av波多野| 国产中文字幕久久黄色片| 国精品91人妻无码一区二区三区 | 久久男人av资源站| 人妻精品久久无码区| 成人免费乱码大片a毛片| 格尔木市| 我要看亚洲黄色太黄一级黄 | 91孕妇精品一区二区三区| 国产精品综合色区在线观| 国产精品一二三中文字幕| 人妻丰满熟妇AV无码区乱| 理塘县| 一级女性全黄久久片免费| 中文字幕在线精品国产| 国产精品久久久久7777按摩| 国自产在线精品一本无码中文| 国产精品无遮挡猛进猛出| 国产精品一二三区蜜臀av| 亚洲区成人综合一区二区| 99精品久久久中文字幕| 少妇真人直播免费视频| 久久99久国产麻精品66| 99久久亚洲综合精品成人| 久久综合婷婷成人网站| 加勒比亚洲天堂午夜中文| 好吊视频一区二区三区人妖| 亚洲国产成人综合精品|