Windows 環境請使用 CMD 作為終端機執行程式碼與編譯。

StdIn 範例

範例輸入資料

22 1 23 1 24 1

範例輸出資料

23 24 25

範例程式碼

Python 程式碼

Windows 上 Python會有些功能無法與其他OS產生相同結果
請勿使用字串檔案路徑,請使用例如os等內建函式庫

main.py

import sys for line in sys.stdin.read().splitlines(): # splitlines 會去除不同OS的換行符號 nums = [int(num) for num in line.split()] # nums = map(int, line.split()) print(sum(nums))

$ python main.py < in.txt

Java 程式碼

Main.java

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextLine()) { String input = scanner.nextLine().strip(); String[] nums = input.split(" "); Integer result = 0; for(String s: nums) { result += Integer.parseInt(s); } System.out.println(result); } scanner.close(); } }

$ javac Main.java
$ java Main < in.txt

C 程式碼

main.c

#include<stdio.h> int main(){ int a, b; while(!feof(stdin) && scanf("%d %d", &a, &b)){ printf("%d\n", a+b); } }

$ gcc main.c -o main
$ ./main < in.txt

C++ 程式碼

main.cpp

#include<iostream> using namespace std; int main(){ int a, b; while(cin >> a >> b){ cout << a + b << endl; } }

$ g++ main.cpp -o main
$ ./main < in.txt

PHP 程式碼

main.php

<?php $handle = fopen('php://stdin', 'r'); while($line = fgets($handle)){ [$a, $b] = explode(' ', $line); echo intval($a) + intval($b); echo PHP_EOL; }
<?php $data = explode(PHP_EOL, trim(stream_get_contents(STDIN))); foreach ($data as $item) { [$a, $b] = explode(' ', $item); echo (intval($a) + intval($b)) . PHP_EOL; }

$ php main.php < in.txt

Rust 程式碼

main.rs

use std::io; use std::io::BufRead; fn main() { for line in io::stdin().lock().lines() { let input = line.unwrap(); let nums: Vec<&str> = input.trim().split(' ').collect(); let result: i32 = nums .into_iter() .map(|x| x.parse::<i32>().unwrap()) .sum(); println!("{}", result); } }

$ cargo build
$ cargo run < in.txt

Go 程式碼

package main import ( "bufio" "fmt" "log" "os" "strconv" "strings" ) func main() { scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { result := 0 numbers := strings.Fields(scanner.Text()) for _, num := range numbers { n, _ := strconv.Atoi(num) result += n } fmt.Println(result) } if scanner.Err() != nil { log.Fatalln("Scanner Fail.") } }

Javascript 程式碼

main.js

process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', processLine => { processLine.toString('utf-8').split('\n') .map(x => x.trim()) .filter(x => !!x) .map(data => { console.log(data.split(' ').reduce((x, y) => +x + +y)) }) })

$ node main.js < in.txt

Typescript 程式碼

$ npm install -g typescript

tsc

main.ts

declare const process: any; process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', processLine => { processLine.toString('utf-8').split('\n') .map(x => x.trim()) .filter(x => !!x) .map(data => { console.log(data.split(' ').map(i => +i).reduce((x, y) => x + y)) }); });

$ tsc main.ts --outFile maints.js
$ node maints.js < in.txt

Kotlin 程式碼

fun main() { generateSequence(::readLine) .map { it.split(" ").map(String::toInt).sum() } .forEach(::println) }

Swift 程式碼

import Foundation while let line: String = readLine() { let result: Int = line.trimmingCharacters(in: .whitespacesAndNewlines) .split(separator: " ") .map{Int($0)!} .reduce(0, +) print(result) }

$ swift main.swift < in.txt

VB .Net 程式碼

  • VB .Net 2010 (Mono VB for Linux)

Mono VB 函式庫需要額外Import
即VB寫法會與visual studio有些差異

例如:ArrayList
必須用 Imports System.Collections

main.vb

Module Module1 Sub Main() While True Dim Input As String = Console.ReadLine() If Input Is Nothing Then Exit While Dim Data() As Integer = Input.Split(" ").Select(Function(x) CInt(x)).ToArray Dim A As Integer = Data(0) Dim B As Integer = Data(1) Dim Output As Integer = A + B Console.WriteLine(Output) End While End Sub End Module

$ vbc main.vb 編譯程式碼

$ main < in.txt for windows

$ mono main.exe < in.txt for mono

$ vbc main.vb -out:main.exe $ mono main.exe < in.txt

C# 程式碼

  • Mono C# for Linux

main.cs

using System; using System.Linq; public class Test { public static void Main() { string line = Console.ReadLine(); while(line != null){ int[] nums = line.Split(' ').Select(x => Int32.Parse(x)).ToArray(); Console.WriteLine(nums[0] + nums[1]); line = Console.ReadLine(); } } }

$ csc main.cs
$ ./main < in.txt

$ mcs main.cs -out:main.exe $ mono main.exe < in.txt

Ruby 程式碼

  • Ruby 2.5

Windows 上 Ruby會有些功能無法正常運作

main.rb

ARGF.each do |input| puts input.split.map(&:to_i).sum end

$ ruby main.rb < in.txt

Select a repo