home > 基礎編 >

ForNext

Shut the fuck up and write some code

標準入力から読んで、標準出力に書く (行番号付加)

VBScript

更新日 : 2008.05.23
Dim i : i = 0
Do Until WScript.StdIn.AtEndOfStream
    i = i + 1
    WScript.StdOut.WriteLine Right("000000" & FormatNumber(i, 0, 0, 0), 6) & " | " & WScript.StdIn.ReadLine
Loop
S:\>cscript //nologo s:\lesson006.vbs < s:\lesson002.vbs
000001 | Dim var1: var1 = "Hello"
000002 | Dim var2: var2 = "World"
000003 | WScript.Echo var1 + ", " + var2 + "!"

JScript

更新日 : 2008.05.23
var i = 0;
var s;
do
{
    i++;
    s = "000000" + i.toString();
    s = s.substr(s.length - 6, 6);
    WScript.StdOut.WriteLine(s + " | " + WScript.StdIn.ReadLine());
}
while (! WScript.StdIn.AtEndOfStream);
S:\>cscript //nologo s:\lesson006.js < s:\lesson002.js
000001 | var var1 = "Hello";
000002 | var var2 = "World";
000003 | WScript.Echo(var1 + ", " + var2 + "!");

Perl

更新日 : 2008.05.23
$i = 0;
printf "%.6d | %s", ++$i, $_ while();
S:\>perl s:\lesson006.pl < s:\lesson002.pl
000001 | $var1 = "Hello";
000002 | $var2 = "World";
000003 | print $var1, ", ", $var2, "!", "\n";

PHP

更新日 : 2008.05.23
<?php
$fp = fopen("php://stdin", "r");
$i  = 0;

while (!feof($fp))
{
    printf("%06d | %s", ++$i, fgets($fp));
}

fclose($fp);
?>
S:\>php s:\lesson006.php < s:\lesson004.php
000001 | <?php
000002 | $var1 = "Hello";
000003 | $var2 = "World";
000004 | print $var1, ", ", $var2, "!", "\n";
000005 | ?>
000006 |

何故か、1行余分に出力されてしまう...

<?php
$fp = fopen("php://stdin", "r");
$i  = 0;

while (!feof($fp))
{
    if ($s = fgets($fp))
        printf("%06d | %s", ++$i, $s);
}

fclose($fp);
?>
S:\>php s:\lesson007.php < s:\lesson004.php
000001 | <?php
000002 | $var1 = "Hello";
000003 | $var2 = "World";
000004 | print $var1, ", ", $var2, "!", "\n";
000005 | ?>

Python



Ruby

更新日 : 2008.05.23
STDIN.each_with_index do |line, i|
    puts format("%.6d | %s", i+1, line)
end
S:\>ruby s:\lesson006.rb < s:\lesson003.rb
000001 | var1 = "Hello";
000002 | var2 = "World";
000003 | print var1, ", ", var2, "!", "\n";

PowerShell

更新日 : 2012.06.08
PS P:\> function addLineNo
{
    begin
    {
        $i = 1
    }
    process
   {
       ($i.ToString("00000:") + $_)
        $i++
    }
}

PS P:\> Get-Content s:\lesson006.rb | addLineNo | Set-Content s:\lesson006.rb.copy

PS P:\> Get-Content s:\lesson006.rb.copy
00001:var1 = "Hello";
00002:var2 = "World";
00003:print var1, ", ", var2, "!", "\n";

Scala



F#



C

C++

C++Builder

VC++

C#

更新日 : 2012.05.10
using System;
using System.IO;

class lesson0003
{
    static void Main(string[] args)
    {
        TextReader input = Console.In;
        string line;
        int i = 0;
        while ((line = input.ReadLine()) != null)
        {
            Console.WriteLine("{0,6} | {1}", i++, line);
        }

        input.Dispose();
    }
}
S:\>csc lesson0003.cs /nologo

S:\>lesson0003 < s:\lesson003.rb
     1 | var1 = "Hello";
     2 | var2 = "World";
     3 | print var1, ", ", var2, "!", "\n";

前ゼロになってなかった...

using System;
using System.IO;

class lesson0004
{
    static void Main(string[] args)
    {
        TextReader input = Console.In;
        string line;
        int i = 0;
        while ((line = input.ReadLine()) != null)
        {
            Console.WriteLine("{0:D6} | {1}", i++, line);
        }

        input.Dispose();
    }
}
S:\>csc lesson0004.cs /nologo

S:\>lesson0004 < s:\lesson003.rb
000001 | var1 = "Hello";
000002 | var2 = "World";
000003 | print var1, ", ", var2, "!", "\n";

Java

更新日 : 2012.05.10
import java.io.*;

public class lesson0004 {
    public static void main(String args[]){

        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            String line;
            int i = 0;
            while ((line = in.readLine()) != null) {
                System.out.printf("%6d | %s\n", i++, line);
            }
        } catch (Exception e) {
            System.err.println(e);
        }
    }
}
S:\>javac lesson0004.java

S:\>java -cp . lesson0004 < s:\lesson003.rb
     1 | var1 = "Hello";
     2 | var2 = "World";
     3 | print var1, ", ", var2, "!", "\n";

Javaでも同じ失敗を...

import java.io.*;

public class lesson0005 {
    public static void main(String args[]){

        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            String line;
            int i = 0;
            while ((line = in.readLine()) != null) {
                System.out.printf("%06d | %s\n", i++, line);
            }
        } catch (Exception e) {
            System.err.println(e);
        }
    }
}
S:\>javac lesson0005.java

S:\>java -cp . lesson0005 < s:\lesson003.rb
000001 | var1 = "Hello";
000002 | var2 = "World";
000003 | print var1, ", ", var2, "!", "\n";

Objective-C

D

VB

VB.NET

Delphi

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system