返回
Featured image of post Go 语言输入输出

Go 语言输入输出

傻孩子,面试的时候要用acm模式刷题啊

核心模板

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package main // 声明这是一个可执行程序的入口包

import (
    "bufio"    // 用于创建带缓冲的读取器
    "fmt"      // 用于格式化输入输出
    "os"       // 提供操作系统功能,这里用于获取标准输入
    "strconv"  // 用于字符串和基本数据类型之间的转换
    "strings"  // 提供字符串操作相关函数
)

func main() {
    // 创建一个从标准输入读取的Scanner对象
    scanner := bufio.NewScanner(os.Stdin)
    
    // scanner.Scan()会读取下一行,当读到文件末尾时返回false
    // 这个循环会一直处理输入,直到没有更多输入为止
    for scanner.Scan() {
        
        // Step1: 获取当前行的内容
        // scanner.Text() 返回当前行的内容,类型为string
        // scanner.Bytes() 返回当前行的内容,类型为[]byte
        line := scanner.Text()
        
        // Step2: 将字符串按空白字符分割成切片
        // strings.Fields()会将字符串按空白字符(空格、制表符、换行符等)分割
        // 返回[]string类型的切片,每个元素是一个被分割出的子字符串
        nums := strings.Fields(line)
        
        // Step3: 将字符串转换为整数
        a, _ := strconv.Atoi(nums[0]) // 获取第一个数
        b, _ := strconv.Atoi(nums[1]) // 获取第二个数
        
        // Step4: 计算两数之和并输出
        fmt.Println(a + b)
    }
}

已知组数

1
2
3
4
5
6
scanner.Scan()
n, _ := strconv.Atoi(scanner.Text())
for i := 0; i < n; i++ {
    scanner.Scan()
    // 处理逻辑
}

不定量数字

1
2
3
4
5
6
scanner.Scan()
nums := strings.Fields(scanner.Text())
for _, s := range nums {
    num, _ := strconv.Atoi(s)
    // 处理每个数字
}
Licensed under CC BY-NC-SA 4.0
© 2023 - 2025 壹壹贰捌· 0Days
共书写了265.7k字·共 93篇文章 京ICP备2023035941号-1