標準入出力 - (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のライブラリも使用可能。)
Cでは<stdio.h>を使用
C++では<iostream>を使用
(※今まで通りCのライブラリも使用可能。)
以下のコードを書いて、Hello Worldと標準出力を行うプログラムを作成してみます。
- #include <iostream>
-
- int main() {
- std::cout << "Hello World";
- return 0;
- }
-
一行目で<iostream>ライブラリをincludeします。
C++のライブラリは、末尾に「.h」をつけません。
これでCとC++のライブラリを区別しています。
C++のライブラリは、末尾に「.h」をつけません。
これでCとC++のライブラリを区別しています。
std::cout が標準出力のコマンドです。
std::cout << "文字列"; や std::cout << 3+3;
とすることで、文字列や数値の計算結果を表示できます。
「<<」 は、出力演算子と呼び、文字列や、数式を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を使用する。
末尾にstd::endlを付け加えると改行する。
今まで通り\nでも改行可能だが、std::endlを使用した場合、改行に加えてバッファをフラッシュしてくれる。
改行なしでフラッシュしたい場合は、std::flushを使用する。
続いて標準入力。(ユーザーからキーボードから何か入力してもらうやつ)
下のコードを書いてみよう。
下のコードを書いてみよう。
- #include <iostream>
-
- int main() {
- char str[64]
- std::cout << "文字を入力してね。" << std::endl;
- std::cin >> str;
- std::cout << "あなたの入力した文字は "<< str <<" です!"<< std::endl;
- return 0;
- }
-
std::cin >> str;が標準入力の部分です。
「>>」は入力演算子と呼び、ユーザの入力した情報を指定した変数に格納します。
scanfの時は「&変数名」だったけど、
アドレス× 変数名○ になってます。
間違えないように。
「>>」は入力演算子と呼び、ユーザの入力した情報を指定した変数に格納します。
scanfの時は「&変数名」だったけど、
アドレス× 変数名○ になってます。
間違えないように。
※cout、cinの便利な点 → %dや%sといった型の意識が不要
では問題行ってみよう。
問1:ユーザに整数を2つ入力してもらい、最初に入力した数 + 次に入力した数 = 計算結果
問1:ユーザに整数を2つ入力してもらい、最初に入力した数 + 次に入力した数 = 計算結果
とコンソールに表示してみよう。
問2:ユーザに"1"を入力するよう標準入力を求め、"1"と入力されたらプログラム終了、それ以外は、もう一度入力させるプログラムを作成せよ。
※1 標準入力の受け取り先の型はint型にすること。
※2 int型に文字列が入力されても無限ループに陥らないようにすること。
※1 標準入力の受け取り先の型はint型にすること。
※2 int型に文字列が入力されても無限ループに陥らないようにすること。
問3:std::の部分を省略してcoutやcinを機能させる方法がある。ぐぐってみよう。
問4:iostreamのライブラリ関数の機能は他にもたくさんあるから調べてみよう。やってみよう。遊んでみよう。