質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

2回答

1332閲覧

表示されなくなる理由が分かりません

lawson.aic

総合スコア18

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

1クリップ

投稿2017/06/12 10:48

Cでコードを書いている初心者です。

putcharで出力する際、putchar('\0');と先に書くと以降、putchar('a');などとしても出力されなくなるのは何故でしょうか?

例えば、以下の場合の実行結果は0です。

#include <stdio.h>

int main(void)
{
putchar('0');
putchar('\0');

return 0;

}

しかし、以下の場合は何も出力されません。

#include <stdio.h>

int main(void)
{
putchar('\0');
putchar('0');

return 0;

}

何が起きているのでしょうか?
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自分の環境では「 0」と表示されてしまいました。
ので予想になるのですが、putchar('\0');は文字列の終わりを表すので、なんらかの要因で文字列とみなされていて、それ以上入れられないのではないでしょうか。
別のエスケープ文字なども入れて試してみてください。

NULL と '\0' の違い

投稿2017/06/12 11:32

toutou

総合スコア2050

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lawson.aic

2017/06/12 14:01 編集

返信ありがとうございます。 別のエスケープを入れてみると以下のようになりました。 ---\nの場合--- #include <stdio.h> int main(void) { putchar('\n'); putchar('0'); return 0; } -実行結果- 改行 0 この場合の表示は正常でした。 ---上記に加えて\0を前に書く--- #include <stdio.h> int main(void) { putchar('\0'); putchar('\n'); putchar('0'); return 0; } -実行結果- 0 この結果から推測すると、①putchar('\0')の後の文字(?)は表示されなくなる(終了扱い)。 ②その後は通常通り表示(処理)される。 ...ということなんでしょうか? 謎です。
guest

0

プログラムは間違っていません。0が表示されます。
表示されないというのは、確認の仕方が間違っているためです。
どういう環境でどのように実行していますか?

投稿2017/06/12 13:03

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lawson.aic

2017/06/12 14:00

返信ありがとうございます。 iPhoneのiOSアプリ"モバイルC"というアプリを使用しています。
otn

2017/06/12 14:03

特殊な環境ですね。環境の制約(仕様)もしくはバグでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

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

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問