cin.getline()関数をもちいればコマンドプロンプト画面からキーボードを使って文字列データを入力をすることができます

ソーラー「ではでは


今度は


C言語の関数ではない


C++言語の関数


            cin.getline()関数


について考察してみたいと思います」



マックス「今度はcin.にgetline()がくっついている??」




ソーラー「そう


cin.にgetline()がくっついているんです



            cin.getline()関数



どの様な働きを持つ関数なのでしょうか?


次のプログラムをご覧ください」

👇


#include <iostream>


using namespace std;


int main()

{

char str[13];



cout << "文字列を入力してください。" << "\n";

cin.getline(str, 13);

cout << str << "\n";



return 0;

}


ビルド実行結果


Hello world!(と入力すると)

Hello world!(が表示されます)


ソーラー「


このプログラムでは


char str[13];


を実行して


char型の配列strを生成しています


cin.getline(str, 13);


が実行されると


文字列を入力するよう


コマンドプロンプト画面に

アンダーバー

_


が表示されます


入力する文字は

半角英数字でも

ひらがなのような全角文字でも構いません


ここで


文字列を入力すると


cin.getline(str, 13);


の第1引数である


char型の配列str



文字列データが格納されることになります


cin.getline(str, 13);


の第2引数である13



char型の配列str



格納される文字列データが


半角英数字13文字(13バイト)まで


に制限するために設定されています


cin.getline(str, 6);


なら


char型の配列str



格納される文字列データは


半角英数字6文字(6バイト)まで


と制限されます


cin.getline(str, 13);


が実行された場合


char型の配列str



格納される文字列データは


半角英数字13文字(13バイト)までとなります


コマンドプロンプト画面に

アンダーバー

_


が表示されている状態で


キーボードから文字列を入力すると


その文字列に


'\0'(ナル文字データ)(1バイト)


を加えたものが


char型の配列strに格納されることになります


ですので


キーボードから入力できるのは半角英数字12文字(12バイト)までとなるんです



このプログラムでは


キーボードから


Hello world!(空白を1文字に含めて半角英数字12文字)


が入力されています


このとき


char型の配列strの配列変数


str[0]

str[1]

str[2]

str[3]

str[4]

str[5]

str[6]

str[7]

str[8]

str[9]

str[10]

str[11]

str[12]


には


str[0]='H';

str[1]='e';

str[2]='l';

str[3]='l';

str[4]='o';

str[5]=' ';

str[6]='w';

str[7]='o';

str[8]='r';

str[9]='l';

str[10]='d';

str[11]='!';

str[12]='\0';👈入力した文字にナル文字データ'\0'が付け加えられて格納されています


が代入されています


ですので


cout << str << "\n";


を実行すると


コマンドプロンプト画面に


Hello world!


が表示されることになります




今度は


コマンドプロンプト画面に

アンダーバー

_


が表示されているとき


数値データ123abcを打ち込んでみたいと思います


#include <iostream>


using namespace std;


int main()

{

char str[13];



cout << "文字列を入力してください。" << "\n";

cin.getline(str, 13);

cout << str << "\n";



return 0;

}


ビルド実行結果

123abc(と入力すると)

123abc(が表示されます)


ソーラー「


半角数字

1

2

3

半角英字

a

b

c

と同じく

1バイトのデータ量をもっているので


同じ1文字とみなされるんだよ


だから


cin.getline(str, 13);


の第2引数の設定が13になっているので


半角英数字をまぜあわせた場合も


123abc456def

のように

12文字までしかキーボードから入力できないことになります


123abc456defに



ひらがな



のような


全角文字は


2バイトのデータ量を持つので


あいうえおか


のように(12バイト)


までなら


入力できることになります


そのことを示すプログラムはこちらです

👇


#include <iostream>


using namespace std;


int main()

{

char str[13];



cout << "文字列を入力してください。" << "\n";

cin.getline(str, 13);

cout << str << "\n";



return 0;

}


ビルド実行結果

あいうえおか(と入力すると)

あいうえおか(が表示されます)



  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る