php小編西瓜在Golang中編寫程式時,遇到了一個有趣的問題:如何在檔案中列印第一個輸入兩次。這個問題看似簡單,但實際上涉及到如何讀取輸入、處理字串和檔案操作等多個方面的知識。透過深入研究和實踐,我成功解決了這個問題,並將解決方法分享給大家。接下來,我將詳細介紹我在Golang中的程式實作步驟。
我嘗試取得一些 csv 格式的字串作為輸入,然後將其列印到實際的 csv 檔案中。它可以工作,但它會列印第一個字串兩次。
我的程式碼如下所示:
func main() { scanner := bufio.newscanner(os.stdin) n := 0 inputfile, err := os.create("input.csv") //create the input.csv file if err != nil { log.fatal(err) } csvwriter := csv.newwriter(inputfile) fmt.println("how many records ?") fmt.scanln(&n) fmt.println("enter the records") var lines [][]string for i := 0; i < n; i++ { scanner.scan() text := scanner.text() lines = append(lines, []string{text}) err := csvwriter.writeall(lines) if err != nil { return } } csvwriter.flush() inputfile.close() }
對於 n=2 和記錄:
abcd, efgh, ijklmn opq, rstu, vwxyz
輸出如下圖所示:
"abcd, efgh, ijklmn" "abcd, efgh, ijklmn" "opq, rstu, vwxyz"
這是我第一次使用 golang,我有點迷失:d
您正在循環中編寫 csv,以便第一行列印雙倍。這是更正後的代碼。
package main import ( "bufio" "encoding/csv" "fmt" "log" "os" ) func main() { scanner := bufio.NewScanner(os.Stdin) n := 0 inputFile, err := os.Create("input.csv") //create the input.csv file if err != nil { log.Fatal(err) } defer func() { inputFile.Close() }() csvwriter := csv.NewWriter(inputFile) defer func() { csvwriter.Flush() }() fmt.Println("How many records ?") fmt.Scanln(&n) fmt.Println("Enter the records") var lines [][]string for i := 0; i < n; i++ { scanner.Scan() text := scanner.Text() lines = append(lines, []string{text}) } err = csvwriter.WriteAll(lines) if err != nil { return } }
以上是我在 Golang 中的程式在文件中列印第一個輸入兩次的詳細內容。更多資訊請關注PHP中文網其他相關文章!