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

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

如何循環(huán)遍歷包含多個數(shù)字的行的文本文件,同時對數(shù)字進(jìn)行計數(shù)

如何循環(huán)遍歷包含多個數(shù)字的行的文本文件,同時對數(shù)字進(jìn)行計數(shù)

Go
陪伴而非守候 2023-06-26 17:57:59
該文件看起來像:John Smith100 90 80 9050 60 80 99 40 20但文件中可以有任意數(shù)量的人員/等級。我知道如何循環(huán)并獲取該人的名字和姓氏,但是如何循環(huán)第一行數(shù)字,將它們添加到自己的總計中,然后循環(huán)第二行并將它們添加到另一個總計中?我還沒有找到一種方法來檢查Go中的行尾,所以我不知道如何區(qū)分第一行數(shù)字和第二行數(shù)字。這是我嘗試過的:package mainimport (    "fmt"     "os"    "log"    "bufio"    //"unicode"    //"container/list")type Student struct {    FirstName string    LastName string}func main(){    fmt.Println("What is the name of your file?\n")    var filename string    fmt.Scan(&filename)    file, err := os.Open(filename)    if err != nil {        log.Fatal(err)    }    scanner := bufio.NewScanner(file)    scanner.Split(bufio.ScanWords)    //var scanCount int = 0    //var studentCount = 1    //var gradeSum = 0    //var gradeAvg = 0    var students [100]Student    for scanner.Scan() {        students[0].FirstName = scanner.Text()        students[0].LastName = scanner.Text()        fmt.Println(students[0].FirstName)        //count ++    }}這是我到目前為止所擁有的。我嘗試過的所有涉及數(shù)字的方法都不起作用,所以我將其刪除了。
查看完整描述

1 回答

?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗 獲得超9個贊

最簡單的方法是按行循環(huán)遍歷文件。像這樣的東西:


package main


import (

    "bufio"

    "fmt"

    "log"

    "strconv"

    "strings"

)


type Student struct {

    FirstName string

    LastName  string

}


func main() {

    fmt.Println("What is the name of your file?\n") var filename string 

    fmt.Scan(&filename)


    file, err := os.Open(filename)

    if err != nil {

     log.Fatal(err)

    }

    scanner := bufio.NewScanner(file)

    for scanner.Scan() {

        line := scanner.Text()

        if len(line) == 0 {

            // skip blank lines

            continue

        }

        if '0' <= line[0] && line[0] <= '9' {

            sum := 0

            for _, field := range strings.Fields(line) {

                n, err := strconv.Atoi(field)

                if err != nil {

                    log.Fatal(err)

                }

                sum += n

            }

            fmt.Println(sum)

        } else {

            fields := strings.Fields(line)

            if len(fields) != 2 {

                log.Fatal("don't know how to get first name last name")

            }

            fmt.Println("First:", fields[0], "Last:", fields[1])

        }

    }

    if err := scanner.Err(); err != nil {

        log.Fatal(err)

    }

}

在游樂場上看到它



查看完整回答
反對 回復(fù) 2023-06-26
  • 1 回答
  • 0 關(guān)注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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