「標準入出力」の編集履歴(バックアップ)一覧に戻る

標準入出力 - (2012/10/02 (火) 23:56:27) の編集履歴(バックアップ)



header


#include 
   
using namespace std; 
   
int main() 
{ 
    cout << "Hello " << endl << "World!" << endl; 
    return 0; 
}



aaaa

test

#include "Phase.h"
#include "RK.h"
#include "FPS.h"
 
namespace Sequence{
 
Phase::Phase(void){
	//入力クラスのインスタンスを生成
	for(int i=0; i<CONTROL_NUM; i++){
		control[i] = new Input();
	}
	printf("\nCreate Phase");
}
Phase::~Phase(void){
	//入力クラスのインスタンスを削除
	for(int i=0; i<CONTROL_NUM; i++){
		delete control[i];
	}
	printf("\nDelete Phase");
}
 
Phase* Phase::loop(){
	this->init();//初期化
	Phase* next = this;
	//ループ
	while( ProcessMessage() == 0 ){
		ClearDrawScreen();//描画画面をクリア
		if(CheckHitKey( KEY_INPUT_ESCAPE )) break;//ESCで終了
 
		next = this->draw();	//ここを継承先で書かせる
 
		DrawFps(0,0);
		ScreenFlip();	//描画反映
 
		if(next != this) break;
	}
	return next;
}
 
void Phase::updateInputAll(){	//すべてのコントローラの入力を更新
	for(int i=0; i<CONTROL_NUM; i++){
		control[i]->updateInput();
	}
}
bool Phase::isInputAnyControl(int input){	//どれかのコントローラで指定の入力があるか
	for(int i=0; i<CONTROL_NUM; i++){
		if( control[i]->isInput(input) ) return true;
	}
	return false;
}
 
}

標準入出力を行う際
Cでは<stdio.h>を使用
C++では<iostream>を使用
(※今まで通りCのライブラリも使用可能。)

以下のコードを書いて、Hello Worldと標準出力を行うプログラムを作成してみます。


  1. #include <iostream>
  2.  
  3. int main() {
  4. std::cout << "Hello World";
  5. return 0;
  6. }
  7.  

一行目で<iostream>ライブラリをincludeします。
C++のライブラリは、末尾に「.h」をつけません。
これでCとC++のライブラリを区別しています。


std::cout が標準出力のコマンドです。
std::cout << "文字列"; や std::cout << 3+3;
とすることで、文字列や数値の計算結果を表示できます。
「<<」 は、出力演算子と呼び、文字列や、数式をcoutに送るという役割を果たします。

std::cout << 3+3 << "文字列" << a+b << 3+1.1;
とすれば、文字列を連結することも可能。

std::cout << "文字列" << std::endl
末尾にstd::endlを付け加えると改行する。
今まで通り\nでも改行可能だが、std::endlを使用した場合、改行に加えてバッファをフラッシュしてくれる。
改行なしでフラッシュしたい場合は、std::flushを使用する。

続いて標準入力。(ユーザーからキーボードから何か入力してもらうやつ)
下のコードを書いてみよう。

  1. #include <iostream>
  2.  
  3. int main() {
  4. char str[64]
  5. std::cout << "文字を入力してね。" << std::endl;
  6. std::cin >> str;
  7. std::cout << "あなたの入力した文字は "<< str <<" です!"<< std::endl;
  8. return 0;
  9. }
  10.  


std::cin >> str;が標準入力の部分です。
「>>」は入力演算子と呼び、ユーザの入力した情報を指定した変数に格納します。
scanfの時は「&変数名」だったけど、
アドレス× 変数名○ になってます。
間違えないように。

※cout、cinの便利な点 → %dや%sといった型の意識が不要

では問題行ってみよう。
問1:ユーザに整数を2つ入力してもらい、最初に入力した数 + 次に入力した数 = 計算結果
     とコンソールに表示してみよう。

問2:ユーザに"1"を入力するよう標準入力を求め、"1"と入力されたらプログラム終了、それ以外は、もう一度入力させるプログラムを作成せよ。
※1 標準入力の受け取り先の型はint型にすること。
※2 int型に文字列が入力されても無限ループに陥らないようにすること。

問3:std::の部分を省略してcoutやcinを機能させる方法がある。ぐぐってみよう。

問4:iostreamのライブラリ関数の機能は他にもたくさんあるから調べてみよう。やってみよう。遊んでみよう。
目安箱バナー