我正在处理一个包含整数列表作为字符串的输入文件
10
..
我选择使用 ReadString('\n') 逐行阅读它方法
下面的代码
line, error := inputReader.ReadString('\n')
lineStr := string(line)
控制台输出(长度和值)
lineStr %v 4
lineStr %v 10
lineStr 的长度为“4”,可能是因为 rune 编码。
然后我尝试了几种方法将其转换为简单整数但没有成功。
Ex1
num, _ := strconv.ParseUint(lineStr, 0, 64)
输出一个数字0(应该是10)
Ex2
num, _ := strconv.Atoi(lineStr)
输出一个数字0(应该是10)
Ex3
num, _ := strconv.Atoi("10")
输出数字 10(ok)
Ex4
num, _ := strconv.ParseUint("10", 0, 64)
输出数字 10(ok)
文字中的字符串可以,但文件中的字符串不起作用,有什么问题吗?
提前致谢
最佳答案
来自文档:“ReadString 一直读取到输入中第一次出现分隔符,返回一个包含数据的字符串,直至并包括分隔符。”
因此,我建议您使用扫描仪,它可以像您期望的那样处理这种情况:
scanner := bufio.NewScanner(file)
for scanner.Scan() {
lineStr := scanner.Text()
num, _ := strconv.Atoi(lineStr)
fmt.Println(lineStr, num)
}
关于string - 戈朗 : read text file line by line of int strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28983831/