• ベストアンサー

PHPwhileによる同じテキストを指定回数出力

お世話になります。 入力される値 3 $input=fgets(STDIN); $i=1; while ($i<=$input){ echo $i."\n"; $i++; } 出力値 1 2 3 それを 出力値 おはよう おはよう おはよう と表示するにはどうすれば良いのでしょうか? よろしくお願いします。

  • nkmyr
  • お礼率67% (403/600)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

echo $i."\n"; を echo "おはよう\n"; でどうでしょうか?

nkmyr
質問者

お礼

ありがとうございます。 表示出来ました。 簡単なもので、拍子ぬけしました。

関連するQ&A

  • PHPwhileによるエラーの原因

    お世話になります。 PHPの勉強を始めたばかりの初心者です。 入力される値 2 8 出力値 2 3 4 5 6 7 8 と表示するように以下のプログラムを作成しました。 <?php $input=fgets(STDIN); $input2=fgets(STDIN); $i = $input; $a = $input2; while ($i<=$a){ echo $i."\n"; $i++; } ?> 結果「Runtime error(Exit status:null)」とエラーメッセージが出ます。 $i = $input; $a = $input2; を $i = 2; $a = 8; にするとうまく表示できます。 変数に代入する変数はこれで合ってますでしょうか? どこか、間違っているか、教えてくださいますか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP whileの意味を知りたい

    お世話になります。 $input=trim(fgets(STDIN)); while($input){ $array[]=$input; $input=trim(fgets(STDIN)); } 上記の意味を教えてください。 while (条件式) 実行する処理; 例 $num = 0; while (num < 2){ print "num=".$num; } 今まではこういった式を学んでいました。 while($input)の$inputという条件式?? $input=trim(fgets(STDIN));の意味も飲み込めないです。 解説を宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPの標準入力処理について

    お世話になります。 RedHat7.3に標準で入っているphp4.1.2を使って コマンドライン用の対話的なツール作成を 考えておりますが、上手くいきません。 以下サンプルです。 >>test.php --------------------------------------- #!/usr/bin/php -q <?php set_time_limit(0); function read($length){ $input1 = fopen("php://stdin","r"); $input2 = trim(fgets($input1, $length)); fclose($input1); return $input2; } echo "enter your name \n"; $name = read(64); echo "your name is $name \n"; echo "enter your age \n"; $age = read(64); echo "your age is $age \n"; ?> -------------------------------------------------- 上記test.phpに実行権を与え $ ./test.php を実施すると以下のようになる予定でした 1.enter your name を出力 2.標準入力から名前(hoge)を入力 3.your name is hoge を出力 4.enter your age を出力 5.標準入力から年齢(24)を入力 6.your name is 24 を出力 このようにはならずに実際は 2 -> 5 -> 1,3,4,6 と標準入力が先でecho文が最後に ドバットと出力されてしまいます。 出力される内容は、入力した文字が きちんと反映されています。 どうすれば思い通りの順番で 処理されるのかご存知の方が おりましたらご教授ください。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • C言語 sscanf関数で変換に失敗した場合

    sscanf関数で変換に失敗した場合という点がよくわからなかったため、 質問させていただきます。 入力された整数の2乗を返すプログラム --------------------------------------------------- # include <stdio.h> # define BUFSIZE 256 int main(void) {   int input;   char linebuf[BUFSIZE];   printf("整数を入力してください。\n");   while(fgets(linebuf, BUFSIZE, stdin) != NULL) {     if(sscanf(linebuf, "%d", &input) != 0) {       printf("%dの2乗は%dです。\n", input, input*input);       break;     }     else {       printf("整数を入力してください。\n");     }   }   return 0; } ----------------------------------------------------- 例えば、入力された値が文字列であった場合、 if(sscanf(linebuf, "%d", &input) != 0) の文のところで"%d"と整数を指定しているため、 変数inputに入力された値を格納できません。 sscanf関数は変換エラーの場合は「EOF」を返すとなっているにもかかわらず、 ここでは「0」以外の場合(!= 0)となっています。 変換エラーというのは、入力された値とsscanf関数で指定した書式が異なる場合は含まないのでしょうか。 そうであるならば、変換エラーというのはどのようなものなのでしょうか。 ちなみに、「!= 0」の部分を「!= EOF」にして実行したところ、 無関係な数値が出力されました。 (aを入力したら、4198555の2乗は~と出力されました)

  • 見やすく出力させたいです。

    DB→PHPでのXMLデータを呼び出し→Flashに出力 すると下記のように このように格好わるく出力されます。 まつお東京20010203 とき大阪20090625 ひまわり東京20100206 これを下記のように見やすく出力させたいですがどうしたらいいですか? まつお   東京    20010203 とき     大阪    20090625 ひまわり  東京    20100206 アクションスクリプトソースです。AS(2.0) var theXML:XML = new XML(); theXML.ignoreWhite = true; theXML.onLoad = function() { var nodes = this.firstChild.childNodes; for(i=0; i<nodes.length; i++) { thelist.addItem(nodes[i].firstChild.nodeValue,i); } } theXML.load("http://XXXX/doglist.php?dog=8); 下記はphpソースです。 ...省略 echo "<?xml version=\"1.0\"?>\n"; echo "<dogDB>\n"; while($line = mysql_fetch_assoc ($result)){ echo "<item>" . $line["name"] . $line["sumai"] .$line["birthady"] ."</item>\n"; } echo "</dogDB>\n"; ...省略 ご教授よろしくお願いいたします。

  • 見やすく出力させたいです。

    PHPでのXMLデータを呼び込んだら、 まつお東京20010203 とき大阪20090625 ひまわり東京20100206 このように格好わるく出力されました。 これを下記のように見やすく出力させたいですがどうしたらいいですか? まつお   東京    20010203 とき     大阪    20090625 ひまわり  東京    20100206 下記はphpソースです。 ...省略 echo "<?xml version=\"1.0\"?>\n"; echo "<dogDB>\n"; while($line = mysql_fetch_assoc ($result)){ echo "<item>" . $line["name"] . $line["sumai"] .$line["birthady"] ."</item>\n"; } echo "</dogDB>\n"; ...省略 ご教授よろしくお願いします。

    • 締切済み
    • PHP
  • 出力制限

    c言語初心者です。 fgets(a,71,stdin); を使います。 このaを三回連結させます。 そして printf("%s",a); で三回連結させたのを210文字で出力したいのです。 しかしどのようにして250まで出力させる制限をつけるのかがわかりません。 どなたかおしえてください。私のやり方方だと70文字以上入力するとエラーしてしまいます。

  • phpのプログラムについて

    <?php $n = trim(fgets(STDIN)) * 60; $m = trim(fgets(STDIN)); for ($i = 1; $i <= $m; $i ++) { $n -= trim(fgets(STDIN)); $o = $n >= 0 ? $i : $o; } echo $n >= 0 ? 'OK' : $o; ?> というコードの $o = $n >= 0 ? $i : $o; の部分の意味がわかりません。 ?の意味と:の意味教えて下さい。

  • 空白を含んだ文字列がうまく格納(表示)できない

    こんにちわ。 空白(スペース)の入った文字列の格納(表示)について質問させてください。 以下のプログラムを実行すると、空白の含む文字列がうまく表示されません。 例えば、 in the worldと入力しても、inしか格納されていないみたいです。それはなぜでしょうか? また、どうすればそれを格納、表示させることができるのでしょうか?教えてください。よろしくお願いいたします。 #include <stdio.h> #include <string.h> main() { char buf[BUFSIZ]; char moji[31]; int i; printf("Input string: "); fgets(buf, sizeof(buf), stdin); moji[31] = '?0'; sscanf(buf, "%s", moji); i = 0; while (moji[i] != '?0') { printf("%c",moji[i]); i = i + 1; } printf("?n"); printf("%d letters?n", i); } 【実行例】 csx01:~> gcc prog.c csx01:~> a.out Input string: in the world in 2 letters

  • 配列とfor文の組み合わせがうまくいきません

    初心者なので質問文でおかしなことを言ってるかもしれませんが よろしくお願いします ソースは下に貼り付けました。 コースの数を入力し、そのコースに名前をつけるという プログラムを書いたのですが forでcoursename[0]からcoucename[3]までの4つに名前を入力しようと コース数に「4」を入力しても forによって繰り返されるのは coursename[0]からcoucename[2]までの3つでした どう直せばいいのでしょうか ==================================================== #include <stdio.h> #define MAX_COURSE 5 /*最大数*/ int main(void){ int course = 0; /*コース数*/ char coursename[MAX_COURSE][100]; /*コース名*/ char line[100]; /*入力用文字型配列*/ int i; /*コース数の入力*/ while (course < 1 || 5 < course){ printf("コース数の入力を行ってください。(1~5)\n"); printf("INPUT : "); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &course); } /*コース名の入力*/ printf("コース名の入力を行ってください。\n"); for(i=0; i<course-1; i++){ printf("%d科目 : ", i+1); fgets(line, sizeof(line), stdin); sscanf(line, "%s" , coursename[i]); } return 0; } ====================================================

専門家に質問してみよう