🍁

SwiftのreadLine()は1023文字しか読み込めない時がある

2021/11/10に公開

標準入力からの文字列を読み込む時、SwiftではreadLine()を使用します。が、最大で1023文字しか読み込めない時があるので要注意です。

  • macOS向けCommand Line ToolプロジェクトをXcodeで開き、デバッグコンソールから標準入力を受け取る場合
  • Terminalでswiftコマンドで.swiftファイルを実行する場合

上記の場合は1024文字以上を一度に読み込もうとするとフリーズします。

長い文字列を受け付けるときはリダイレクトでファイルを読み込みましょう。

$ swift main.swift < input.txt

Discussion