第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我在 Golang 中的程序在文件中兩次打印第一個輸入

我在 Golang 中的程序在文件中兩次打印第一個輸入

Go
阿波羅的戰(zhàn)車 2023-03-21 10:26:58
我嘗試獲取一些 CSV 格式的字符串作為輸入,然后將其打印到實(shí)際的 CSV 文件中。它有效,但它打印第一個字符串 2 次。我的代碼如下所示: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, ijklmnopq, rstu, vwxyz輸出如下所示:"abcd, efgh, ijklmn""abcd, efgh, ijklmn""opq, rstu, vwxyz"這是我第一次使用 Golang,我有點(diǎn)迷茫 :D
查看完整描述

2 回答

?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個贊

csvwriter.WriteAll(lines) WriteAll使用 Write將多個 CSV 記錄寫入w,然后調(diào)用 Flush,返回來自 Flush 的任何錯誤。


每次循環(huán)讀取并刷新到文件時,您都會附加行。


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 inputFile.Close()


    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

    }

    

}


查看完整回答
反對 回復(fù) 2023-03-21
?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個贊

您正在循環(huán)編寫 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

    }

}


查看完整回答
反對 回復(fù) 2023-03-21
  • 2 回答
  • 0 關(guān)注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號