開発環境
- OS X Mavericks - Apple(OS)
- Xcode 6.0 Beta 6
- Swift (プログラミング言語)
Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) (Paul Gries (著)、Jennifer Campbell (著)、Jason Montojo (著)、Lynn Beighley (編集)、Pragmatic Bookshelf)のChapter 10(Reading and Writing Files)、10.10(Exercises) 1.をSwiftで考えてみる。
10.10(Exercises) 1.
コード(Xcode)
main.swift
// // main.swift // sample1 // // Created by kamimura on 9/22/14. // Copyright (c) 2014 kamimura. All rights reserved. // import Foundation let name:String = input() let s:String? = read(name) print(s!, "\(name).out", end: "")
stdio.swift
//
// stdio.swift
// stdio
//
// Created by kamimura on 8/21/14.
// Copyright (c) 2014 kamimura. All rights reserved.
//
import Foundation
// 標準入力(STDIN)から読み込む
func input(msg:String = "") -> String {
print(msg)
var in_fh = NSFileHandle.fileHandleWithStandardInput()
var data = in_fh.availableData
in_fh.closeFile()
var s = NSString(data: data, encoding: NSUTF8StringEncoding)
s = s?.substringToIndex(s!.length - 1)
return s!
}
func read(path:String) -> String? {
var fh = NSFileHandle(forReadingAtPath: path)
let data = fh?.readDataToEndOfFile()
if fh == nil {
error("file(\(path)) can't open.")
}
fh?.closeFile()
return NSString(data: data!, encoding: NSUTF8StringEncoding)
}
func print(s:String, path:String, end:String = "\n") {
(s + end).writeToFile(path, atomically: true, encoding: NSUTF8StringEncoding, error: nil)
}
func error(msg:String) {
let stderr = NSFileHandle.fileHandleWithStandardError()
stderr.writeData((msg + "\n").dataUsingEncoding(NSUTF8StringEncoding)!)
exit(1)
}
// コマンドライン引数
let argv:[String] = NSProcessInfo.processInfo().arguments.map({(x:AnyObject) -> String in x as String})
入出力結果(Console Output)
$ cat sample.txt sample txt Hello, Swift! $ ./sample1 sample.txt $ cat sample.txt sample txt Hello, Swift! $ cat sample.txt.out sample txt Hello, Swift! $
0 コメント:
コメントを投稿