Permalink
Browse files

Gets now panics on errors + documentation fixed

  • Loading branch information...
1 parent 0f8a498 commit ec20737c9422a23494dc6864cafd6ba84ecf1ccd Sergei Yu. Skorobogatov committed May 18, 2012
Showing with 24 additions and 10 deletions.
  1. +23 −9 README.md
  2. +1 −1 input.go
View
@@ -6,8 +6,10 @@
Более того, использование fmt.Scanf зачастую приводит к неправильному считыванию данных
со стандартного потока ввода.
-Пакет "input" экспортирует функцию Scanf, которая фактически является обёрткой над функцией
-scanf языка C.
+Кроме того, стандартная библиотека языка Go не предоставляет аналога функции gets языка C.
+
+Пакет "input" экспортирует функции Scanf и Gets, которые фактически являются обёртками
+над функциями scanf и gets языка C.
Утановка
--------
@@ -43,21 +45,33 @@ scanf языка C.
должны быть целочисленными (поддерживаются все целочисленные типы языка Go).
Переменные, соответствующие вхождениям спецификатора %s, должны иметь тип string.
-Пример использования функции:
+Функция аварийно завершается как при обнаружении любых несоответствий типов параметров
+форматным спецификаторам, так и при несовпадении количества параметров и количества
+форматных спецификаторов.
+
+Функция input.Gets объявлена как
+
+ func Gets() string
+
+Она считывает строку из стандартного потока ввода до тех пор, пока в нём не появится
+символ перевода строки.
+
+Пример использования функций:
package main
-
+
import (
"fmt"
"github.com/skorobogatov/input"
)
-
+
func main() {
var m, n int
input.Scanf("%d%d", &m, &n)
+
+ input.Scanf("\n") // Чтобы считать \n, оставшийся после Scanf
+ s := input.Gets()
+
fmt.Printf("%d %d\n", m, n)
+ fmt.Printf("%s\n", s)
}
-
-Функция аварийно завершается как при обнаружении любых несоответствий типов параметров
-форматным спецификаторам, так и при несовпадении количества параметров и количества
-форматных спецификаторов.
View
@@ -96,7 +96,7 @@ func Scanf(format string, a ...interface{}) (n int) {
func Gets() (s string) {
cs := C.getstring()
if cs == nil {
- return ""
+ panic("input.Gets: I/O error or out of memory")
}
s = C.GoString(cs)

0 comments on commit ec20737

Please sign in to comment.