初歩的な質問ではありますがご教授願います。
形式的に間違っていない気がしますがエラー表示がでてしまい。
動作が正常に反応しません。
半角スペースの問題やスペルミスを確認しましたが原因がわからずに手詰まっております。
どうように修正したら良いか教えて頂けないでしょうか?
$input_lines = fgets(STDIN); $input_lines2 = fgets(STDIN); echo $input_lines+$input_lines2; ?> コード
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
0
ベストアンサー
普通にコンソールから
php -f teratail.php
とか書いて実行したら、問題なく動きますね。
php
1<?php 2 3 $input_lines = fgets(STDIN); 4 $input_lines2 = fgets(STDIN); 5 echo $input_lines+$input_lines2; 6?>
PHP: I/O ストリーム - Manualを読むと、
要はコンソール(シェル上)からの起動時にはSTDINなどが定義されるけど、
そうじゃない起動方法では使えないってことでしょうか。
投稿2017/10/20 06:58
編集2017/10/20 07:00退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
$input_lines = fgets(STDIN);
は一行で大丈夫です。
また、このfgets(STDIN)で入力されるのは 1(半角スペース)1(改行)で、半角スペースを消す必要があります。
ですので半角スペースを消すにはexplodeで、$input_linesの半角スペースを消すコードを書きます。
(paizaの規約では問題文や回答などの公表は禁止となっているので、自分で調べてできるようにしましょう)
投稿2017/10/20 10:06
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/20 14:21
退会済みユーザー
2017/10/21 02:43
0
fgetsを使っていますが、もしかしてSTDINの入力が「改行区切り」の2つの数ではなく「スペース区切り」の2つの数なのでは…?入力の仕様に沿ったコードになっていますか?
投稿2017/10/20 07:14
総合スコア9206
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
STDINからの入力は最後に改行が追加されると思います。
改行を含んでいるため文字列となって
text
1PHP Notice: A non well formed numeric value encountered in
のようなエラーになったりします。
php
1trim(fgets(STDIN))
とすればエラーはなくなると思います。
投稿2017/10/20 06:53
総合スコア342
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
fgetsからの戻り値を確認した方が良いかと思います。
型や終端文字などの問題ではないでしょうか。
投稿2017/10/20 06:51
編集2017/10/20 07:06総合スコア928
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ファイルの先頭に<?php
と書いてありますか?
投稿2017/10/20 06:22
総合スコア9206
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。