Skip to content

Instantly share code, notes, and snippets.

@hyuki
Last active April 9, 2018 13:00
Show Gist options
  • Save hyuki/6517404a1ab368d2a3122e48d0334280 to your computer and use it in GitHub Desktop.
Save hyuki/6517404a1ab368d2a3122e48d0334280 to your computer and use it in GitHub Desktop.
os.Create, fmt.Fprintf
package main
import (
"bufio"
"fmt"
"os"
"log"
)
func check(err error) {
if err != nil {
log.Fatal(err)
}
}
func main() {
if len(os.Args) != 3 {
fmt.Printf("Usage: %s input-filename output-filename\n", os.Args[0])
os.Exit(1)
}
infilename := os.Args[1]
outfilename := os.Args[2]
fmt.Printf("input-filename = %s\n", infilename)
fmt.Printf("output-filename = %s\n", outfilename)
infile, err := os.Open(infilename)
check(err)
outfile, err := os.Create(outfilename)
check(err)
linenumber := 0
scanner := bufio.NewScanner(infile)
for scanner.Scan() {
fmt.Fprintf(outfile, "%d: %s\n", linenumber, scanner.Text())
linenumber++
}
check(scanner.Err())
check(infile.Close())
check(outfile.Close())
}
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est laborum.
@hyuki
Copy link
Author

hyuki commented Apr 9, 2018

$ go build a.go ; ./a
Usage: ./a input-filename output-filename
$ ./a sample.txt out.txt
input-filename = sample.txt
output-filename = out.txt
$ cat out.txt
0: Lorem ipsum dolor sit amet, consectetur adipiscing elit,
1: sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
2: Ut enim ad minim veniam,
3: quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
4: Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
5: Excepteur sint occaecat cupidatat non proident,
6: sunt in culpa qui officia deserunt mollit anim id est laborum.

@hyuki
Copy link
Author

hyuki commented Apr 9, 2018

$ cat japanese.txt
ゆく河の流れは絶えずして、しかももとの水にあらず。
淀みに浮かぶうたかたは、かつ消えかつ結びて、久しくとどまりたるためしなし。
世の中にある人とすみかと、またかくのごとし。
たましきの都のうちに、棟を並べ、甍を争へる、高き、卑しき、人のすまひは、
世々を経て尽きせぬものなれど、これをまことかと尋ぬれば、昔ありし家はまれなり。
あるいは去年焼けて今年作れり。あるいは大家滅びて小家となる。住む人もこれに同じ。
所も変はらず、人も多かれど、いにしへ見し人は、二、三十人が中に、
わづかにひとりふたりなり。朝に死に、夕べに生まるるならひ、
ただ水のあわにぞ似たりける。知らず、生まれ死ぬる人、
いづかたより来たりて、いづかたへか去る。また知らず、仮の宿り、
たがためにか心を悩まし、何によりてか目を喜ばしむる。
その、あるじとすみかと、無常を争ふさま、いはば朝顔の露に異ならず。
あるいは露落ちて花残れり。残るといへども朝日に枯れぬ。
あるいは花しぼみて露なほ消えず。消えずといへども夕べを待つことなし。
$ ./a japanese.txt out.txt
input-filename = japanese.txt
output-filename = out.txt
$ cat out.txt
0: ゆく河の流れは絶えずして、しかももとの水にあらず。
1: 淀みに浮かぶうたかたは、かつ消えかつ結びて、久しくとどまりたるためしなし。
2: 世の中にある人とすみかと、またかくのごとし。
3: たましきの都のうちに、棟を並べ、甍を争へる、高き、卑しき、人のすまひは、
4: 世々を経て尽きせぬものなれど、これをまことかと尋ぬれば、昔ありし家はまれなり。
5: あるいは去年焼けて今年作れり。あるいは大家滅びて小家となる。住む人もこれに同じ。
6: 所も変はらず、人も多かれど、いにしへ見し人は、二、三十人が中に、
7: わづかにひとりふたりなり。朝に死に、夕べに生まるるならひ、
8: ただ水のあわにぞ似たりける。知らず、生まれ死ぬる人、
9: いづかたより来たりて、いづかたへか去る。また知らず、仮の宿り、
10: たがためにか心を悩まし、何によりてか目を喜ばしむる。
11: その、あるじとすみかと、無常を争ふさま、いはば朝顔の露に異ならず。
12: あるいは露落ちて花残れり。残るといへども朝日に枯れぬ。
13: あるいは花しぼみて露なほ消えず。消えずといへども夕べを待つことなし。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment