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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

7回答

3757閲覧

PHPで足し算のプログラミングの作成したい

rina0366

総合スコア58

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/10/20 06:18

初歩的な質問ではありますがご教授願います。
形式的に間違っていない気がしますがエラー表示がでてしまい。
動作が正常に反応しません。

半角スペースの問題やスペルミスを確認しましたが原因がわからずに手詰まっております。
どうように修正したら良いか教えて頂けないでしょうか?

$input_lines = fgets(STDIN); $input_lines2 = fgets(STDIN); echo $input_lines+$input_lines2; ?> コード

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

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

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

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

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

date

2017/10/20 06:41

paizaですか?
guest

回答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

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

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

rina0366

2017/10/20 14:21

すみません汗 $のあとの文字を変えたり、いろいろオリジナリティを出したら問題ないでしょうか? たしか$の後の言葉は自由と聞いています・・・
退会済みユーザー

退会済みユーザー

2017/10/21 02:43

いいえ、変数の名前の問題じゃありません。 標準入力で渡されているのが 1 1 です。1と1の間に半角スペースが入っているのわかりますか? このままの出力でやるとarray([0]1,[1] ,[2]1)の状態で、半角区切りが消せていないから点数がつきません。なのでexplodeで半角スペースを詰めてarray([0]1,[1]1)にした状態で足し算を出力しましょう。
guest

0

fgetsを使っていますが、もしかしてSTDINの入力が「改行区切り」の2つの数ではなく「スペース区切り」の2つの数なのでは…?入力の仕様に沿ったコードになっていますか?

投稿2017/10/20 07:14

masaya_ohashi

総合スコア9206

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

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

0

STDINからの入力は最後に改行が追加されると思います。
改行を含んでいるため文字列となって

text

1PHP Notice: A non well formed numeric value encountered in

のようなエラーになったりします。

php

1trim(fgets(STDIN))

とすればエラーはなくなると思います。

投稿2017/10/20 06:53

packet1024

総合スコア342

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

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

0

fgetsからの戻り値を確認した方が良いかと思います。
型や終端文字などの問題ではないでしょうか。

投稿2017/10/20 06:51

編集2017/10/20 07:06
yuki-saito

総合スコア928

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

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

0

エラー文は何って書いてありますか?
そこにヒントがあるはずです!

投稿2017/10/20 06:28

June666

総合スコア290

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

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

rina0366

2017/10/20 06:38

コード実行結果:xエラー 実行結果ステータス Wrong Answer 提出コードのアウトプット 1 期待する出力 2 と書いてあります
退会済みユーザー

退会済みユーザー

2017/10/20 10:19

> Sugimoto さん これ、php のエラーではないようですが。。。
guest

0

ファイルの先頭に<?phpと書いてありますか?

投稿2017/10/20 06:22

masaya_ohashi

総合スコア9206

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

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

rina0366

2017/10/20 06:36

ペーストしたときに忘れてしまいました。 書いてあります。
退会済みユーザー

退会済みユーザー

2017/10/20 10:19 編集

> Sugimoto さん 質問文をちゃんと追記/修正してください。問題箇所がわからなくなります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問