🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2308
cin.getline()関数をもちいればコマンドプロンプト画面からキーボードを使って文字列データを入力をすることができます
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;
}
ビルド実行結果
あいうえおか(と入力すると)
あいうえおか(が表示されます)
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます