- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试学习 Go,但坚持使用这个:http://ideone.com/hbCamr 或 http://ideone.com/OvRw7t
package main
import "fmt"
func main(){
var i int
var f float64
var s string
_, err := fmt.Scan(&i)
if err == nil {
fmt.Println("read 1 integer: ",i)
} else {
fmt.Println("Error: ",err)
}
_, err = fmt.Scan(&f)
if err == nil {
fmt.Println("read 1 float64: ",f)
} else {
fmt.Println("Error: ",err)
}
_, err = fmt.Scan(&s)
if err == nil {
fmt.Println("read 1 string: ",s)
} else {
fmt.Println("Error: ",err)
}
_, err = fmt.Scanln(&s)
if err == nil {
fmt.Println("read 1 line: ",s)
} else {
fmt.Println("Error: ",err)
}
}
对于这个输入:
123
123.456
everybody loves ice cream
输出是:
read 1 integer: 123
read 1 float64: 123.456
read 1 string: everybody
Error: Scan: expected newline
这是预期的行为吗?为什么它不像 C++ getline 那样工作? http://ideone.com/Wx8z5o
最佳答案
答案在 documentation of Scanln
中:
Scanln is similar to Scan, but stops scanning at a newline and after the final item there must be a newline or EOF.
Scan
表现为 documented还有:
Scan scans text read from standard input, storing successive space-separated values into successive arguments. Newlines count as space. It returns the number of items successfully scanned. If that is less than the number of arguments, err will report why.
总结:Scan
将每个单词(由空格分隔的字符串)放入相应的参数中,将换行符视为空格。 Scanln
做同样的事情,但将换行符视为停止字符,之后不再进一步解析。
如果你想阅读一行(\n
在末尾)使用 bufio.Reader
及其 ReadString
方法:
line, err := buffer.ReadString('\n')
关于input - fmt.Scanln 预期换行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24005899/
在 Vaadin 7.0,显示时JavaBean Table 中的数据与 BeanContainer ,用新数据刷新表的正确方法是什么? 最佳答案 该表通过监听器监视表项的属性。如果您通过表的 Ite
首先,我使用的是带有 Axis2 1.6.2 的 eclipse,我正在 tomcat 6 上部署我创建的 Web 服务。Web 服务是在 eclipse 中通过自上而下的方法创建的。 我被要求使对我
我已将 Rails 3.1.1 应用程序升级到 Rails 3.1.3,现在,对于每个请求,它仅响应错误数量的参数(3 for 1)。不幸的是,它没有说明错误在哪里,并且应用程序跟踪为空。我认为存在一
我是一名优秀的程序员,十分优秀!