程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++編程頂用put輸入單個字符和cin輸出流的用法

C++編程頂用put輸入單個字符和cin輸出流的用法

編輯:關於C++

C++編程頂用put輸入單個字符和cin輸出流的用法。本站提示廣大學習愛好者:(C++編程頂用put輸入單個字符和cin輸出流的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是C++編程頂用put輸入單個字符和cin輸出流的用法正文


用C++流成員函數put輸入單個字符
在法式中普通用cout和拔出運算符“<<”完成輸入,cout流在內存中有響應的緩沖區。有時用戶還有特別的輸入請求,例如只輸入一個字符。ostream類除供給下面引見過的用於格局掌握的成員函數外,還供給了公用於輸入單個字符的成員函數put。如:

  cout.put('a');


挪用該函數的成果是在屏幕上顯示一個字符a。put函數的參數可所以字符或字符的ASCII代碼(也能夠是一個整型表達式)。如

  cout.put(65 + 32);


也顯示字符a,由於97是字符a的ASCII代碼。

可以在一個語句中持續挪用put函數。如:

  cout.put(71).put(79).put(79). put(68).put('\n');


在屏幕上顯示GOOD。

[例] 有一個字符串"BASIC",請求把它們按相反的次序輸入。

#include <iostream>
using namespace std;
int main( )
{
  char *a="BASIC";//字符指針指向'B'
  for(int i=4;i>=0;i--)
   cout.put(*(a+i));         //從最初一個字符開端輸入
  cout.put('\n');
  return 0;
}

運轉時在屏幕上輸入:

CISAB

除應用cout.put函數輸入一個字符外,還可以用putchar函數輸入一個字符。putchar函數是C說話中應用的,在stdio.h頭文件中界說。C++保存了這個函數,在iostream頭文件中界說。

[例] 也能夠改用putchar函數完成。

#include <iostream> //也能夠用#include <stdio.h>,同時不要下一行
using namespace std;
int main( )
{
  char *a="BASIC";
  for(int i=4;i>=0;i--)
   putchar(*(a+i));
  putchar('\n');
}

運轉成果與前雷同。

成員函數put不只可以用cout流對象來挪用,並且也能夠用ostream類的其他流對象挪用。


C++ cin輸出流詳解
尺度輸出流是從尺度輸出裝備(鍵盤)流向法式的數據。在頭文件iostream.h中界說了cin、cout、cerr、clog 4個流對象(概況請檢查:與C++輸出輸入有關的類和對象),cin是輸出流,cout、cerr、clog是輸入流。

cin是istream類的對象,它從尺度輸出裝備(鍵盤)獲得數據,法式中的變量經由過程流提取符“>>”從流中提取數據。流提取符“>>”從流中提取數據時平日跳過輸出流中的空格、tab鍵、換行符等空白字符。

留意:只要在輸出完數據再按回車鍵後,該行數據才被送入鍵盤緩沖區,構成輸出流,提取運算符“>>”能力從中提取數據。須要留意包管從流中讀取數據能正常停止。

例如:

  int a,b;
  cin>>a>>b;


若從鍵盤上輸出

  21 abc↙


變量a從輸出流中提取整數21,提取操作勝利,此時cin流處於正常狀況。但在變量b預備提取一個整數時,碰到了字母a,明顯提取操作掉敗了,此時,cin流被置為失足狀況。只要在正常狀況時,能力從輸出流中提取數據。

當碰到有效字符或碰到文件停止符(不是換行符,是文件中的數據已讀完)時,輸出流cin就處於失足狀況,即沒法正常提取數據。此時對cin流的一切提取操作將終止。在 IBM PC及其兼容機中,以Ctrl + Z表現文件停止符。在UNIX和Macintosh體系中,以 Ctrl + D表現文件停止符。當輸出流cin處於失足狀況時,假如測試cin的值,可以發明它的值為false(假),即cin為0值。假如輸出流在正常狀況,cin的值為true(真),即cin為 一個非0值。可以經由過程測試cin的值,斷定流對象能否處於正常狀況和提取操作能否勝利。如:

  if(!cn) //流cin處於出銷狀況,沒法正常提取數據
    cout<<"error";

[例] 經由過程測試cin的真值,斷定流對象能否處於正常狀況。

#include <iostream>
using namespace std;
int main( )
{
  float grade;
  cout<<"enter grade:";
  while(cin>>grade)//能從cin流讀取數據
  {
   if(grade>=85) cout<<grade<<"GOOD!"<<endl;
   if(grade<60) cout<<grade<<"fail!"<<endl;
   cout<<"enter grade:";
  }
  cout<<"The end."<<endl;
  return 0;
}

流提取符“>>”赓續地從流中提取數據(每次提取一個浮點數),假如勝利,就陚給 grade,此時cin為真,若不勝利則cin為假。假如鍵入文件停止符,表現數據已完。

運轉情形以下:

enter grade: 67↙
enter grade: 89↙
89 GOOD!
enter grade: 56↙
56 fail!
enter grade: 100↙
100 GOOD!
enter grade: ^Z↙//鍵入文件停止符
The end.

在碰到文件停止符時,法式停止。假如某次輸出的數據為

  enter grade: 100/2↙


流提取符">>"提取100,賦給grade,停止if語句的處置。然後再碰到"/",以為是有效字符,cin前往0。輪回停止,輸入"The end."。

在分歧的C++體系下運轉此法式,在最初的處置上有些分歧。以上是在GCC情況下運轉法式的成果,假如在VC++情況(筆者應用win7體系)下運轉此法式,在鍵入Ctrl + Z 時,須要敲擊兩次回車,法式才輸入"The end."。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved