Мне нигде не удалось найти это (или я просто не понимаю).Я читаю в списке чисел из файла, разделенных пробелами.Т.е. файл выглядит как «1 4 0 0 2 5 ... и т. Д.», И я хочу его в виде массива (или, предпочтительно, двумерного массива, в котором каждая новая строка также отделяется).Как я могу сделать это?
Это код, который у меня есть до сих пор - большая его часть взята из уроков, которые я нашел, поэтому я не до конца понимаю все это.Он хорошо читает в файле и возвращает строку.Дополнительный вопрос: когда я печатаю строку, я получаю это в конце вывода:%! (ДОПОЛНИТЕЛЬНО) Кто-нибудь знает, как это исправить?Я предполагаю, что он помещает последний ноль в возвращаемую строку, но я не знаю, как это исправить.
package main
import (
"fmt"
"os"
)
func read_file(filename string) (string, os.Error) {
f, err := os.Open(filename)
if err != nil {
return "", err
}
defer f.Close() // f.Close will run when we're finished.
var result []byte
buf := make([]byte, 100)
for {
n, err := f.Read(buf[0:])
result = append(result, buf[0:n]...) // append is discussed later.
if err != nil {
if err == os.EOF {
break
}
return "", err // f will be closed if we return here.
}
}
return string(result), nil // f will be closed if we return here.
}
func print_board() {
}
func main() {
fmt.Printf(read_file("sudoku1.txt")) // this outputs the file exactly,
// but with %!(EXTRA <nil>) at the end.
// I do not know why exactly
}
Большое спасибо за любую помощь, которую вы можете предложить.
-W