![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
演算子 >> で char を読み込む仕様は、
* ストリームバッファから1文字取り出し、仮引数cに書き込む。
* 入力がなされなかった場合、setstate(failbit)を呼び出す。
ですので、
入力がなされなかった場合に \0 を書き込むには
cin >> c;
if (cin.fail()) c = '\0';
参考)
https://cpprefjp.github.io/reference/istream/bas …
No.5
- 回答日時:
「標準入力の<<を使って」と書いているのにプログラムでは「cin >> c」となっているのが謎だ.
キーボード (や設定) によっては
C-@
C-v C-@
などでヌル文字が入ることがある.
なお余談だが NULL と '\0' は全く違うものなので良い子は混同してはならない.
No.4
- 回答日時:
> iMacでは、Ctrl+DでNULLが入るようです。
それはおそらく勘違いですね。
Ctrl-Dだと、長さゼロの入力になります。ファイルで言うと空ファイル(長さゼロのファイル)をリダイレクトしたような。
c = 'A';
cin >> c;
cout << c;
で、cinに対して Ctrl-D を押すと A が表示されると思います。
つまり、c にもともと \0 が入っていた状況だったので、Ctrl-Dで \0 が入ったと勘違いしたのでしょう。
No.3
- 回答日時:
MacOS,Luinux等のUnix(系)OSの端末では、 Ctrl-D は EOF を意味します。
つまり、標準入力はその直前で終り、というとことです。
\0が入力されたわけではありません。
Windows では Ctrl-Zに相当します。
元のプログラムを確認してください。
求められているのは、本当に「\0を入力すること」ですか?
「入力を終わらせる=EOFを入力すること」ではないですか?
No.2
- 回答日時:
コードでどう書くかというより、キーボードでどうやってNULを入力するかと言うことになるかと思います。
が、WindowsでもLinuxでも Ctrl-@ を入力しても認識されないですね。
キーボードからNULを入れるのは無理だと思うので、
printf '\0' | ./program
のようにパイプで送り込むか、特定の文字が入ったらNULと置き換えるように書いて、その文字を入力するか。
if(c=='!') c='\0';
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- Excel(エクセル) VBAで、㉑という数値が、正しく、入力できない 2 2022/07/26 20:22
- Java Java 年数計算 3 2023/01/28 10:52
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- Excel(エクセル) Excelで【1-1】【1-2】【1-3】という連番の文字の入力が上手く出来ません。 5 2022/11/16 13:24
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- 統計学 生物統計学の質問 7 2022/05/17 13:59
- Excel(エクセル) 条件付き書式を使ってユーザー定義。「数字のみ」も「数字+アルファベット」も認識させたい。 2 2022/05/28 07:22
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミング初心者です。 Py...
-
コマンドプロンプトからのEOFの...
-
java初心者です。入力されたの...
-
正負を反転させて出力するプロ...
-
数字以外が入力されたらエラー...
-
scanfの後のfgetsについて
-
Linuxプログラミングで、キーボ...
-
漢字のソートについて
-
Userformの入力順序をタブオー...
-
入力候補を表示させるには・・・?
-
getc 等の違い
-
cout関数を使っているのですが...
-
数値の連続入力終了条件について
-
Excel VBAで、Application.Inpu...
-
batプログラム上で文字列を入力...
-
"scanf"でエンターで改行させな...
-
C言語の非標準コンソール関数ge...
-
VisualStudio2019のコードアナ...
-
入力エラーの処理について。
-
Linuxで入力待ちなしkeyread関...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング初心者です。 Py...
-
正負を反転させて出力するプロ...
-
*をユーザーが入力した数字の数...
-
java初心者です。入力されたの...
-
数字以外が入力されたらエラー...
-
Eclipseコンソール表示を、リセ...
-
Excel VBAで、Application.Inpu...
-
scanfが2回使えない・・・?;
-
EDITコントロールで入力できる...
-
cout関数を使っているのですが...
-
小数か整数かを判定する方法
-
至急教えてください!プログラ...
-
入力候補を表示させるには・・・?
-
C言語 逆ピラミッドの作り方
-
VisualStudio2019のコードアナ...
-
コマンドプロンプトからのEOFの...
-
Date関数で書いた日付がおかしい
-
WindowsでEOF
-
実行結果の順番がおかしいんで...
-
Linuxで入力待ちなしkeyread関...
おすすめ情報
char c;
if (cin >> c) {
...
}
で、標準入力(キーボード)から変数cにNULLを入れたい。
iMacでは、Ctrl+DでNULLが入るようです。