0Pricing
Go Academy · 강의

입력 스캔하기

서식이 지정된 입력 읽기

입력 스캔하기은(는) CoddyKit의 무료 Go Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Go Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Go Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

fmt로 입력 읽기

fmt 패키지는 값을 출력하기만 하는 것이 아니라 값을 읽을 수도 있습니다. 스캔 함수는 텍스트를 타입이 지정된 변수로 구문 분석합니다.

스캔 함수는 출력 함수와 반대 역할을 합니다.

package main

import "fmt"

func main() {
    var n int
    fmt.Sscan("42", &n)
    fmt.Println(n + 1)
}

포인터가 필요합니다

스캔 함수는 결과를 저장해야 하므로 &를 사용해 각 변수의 주소를 전달합니다.

&를 빠뜨리는 것이 스캔에서 가장 흔한 오류입니다.

package main

import "fmt"

func main() {
    var a, b int
    fmt.Sscan("3 4", &a, &b)
    fmt.Println(a + b)
}

Sscan은 공백으로 나눕니다

fmt.Sscan은 문자열에서 공백으로 구분된 값을 여러 변수로 읽어 오며, 각 포인터에서 타입을 선택합니다.

package main

import "fmt"

func main() {
    var name string
    var age int
    fmt.Sscan("Ada 36", &name, &age)
    fmt.Println(name, age)
}

Sscanf는 서식을 사용합니다

fmt.Sscanf는 Printf를 반대로 사용하는 것처럼 서식 문자열에 따라 구문 분석합니다. 서식 문자열의 리터럴 문자는 입력과 일치해야 합니다.

package main

import "fmt"

func main() {
    var h, m int
    fmt.Sscanf("09:05", "%d:%d", &h, &m)
    fmt.Println(h, m)
}

읽은 항목 수 확인하기

스캔 함수는 성공적으로 구문 분석한 항목의 개수와 오류를 반환합니다. 구문 분석이 완전히 성공했는지 확인하려면 개수를 검사하십시오.

package main

import "fmt"

func main() {
    var a, b int
    count, _ := fmt.Sscan("7", &a, &b)
    fmt.Println("parsed:", count)
}

구문 분석 오류 처리하기

입력이 예상한 타입과 일치하지 않으면 오류가 반환됩니다. 실제 입력을 처리할 때는 항상 오류를 확인하십시오.

package main

import "fmt"

func main() {
    var n int
    _, err := fmt.Sscan("notanumber", &n)
    if err != nil {
        fmt.Println("error:", err)
    }
}

여러 타입 구문 분석하기

한 번의 호출로 여러 가지 타입을 읽을 수 있습니다. 각 포인터의 타입에 따라 해당 토큰을 구문 분석하는 방식이 결정됩니다.

package main

import "fmt"

func main() {
    var word string
    var price float64
    var ok bool
    fmt.Sscan("apple 1.50 true", &word, &price, &ok)
    fmt.Println(word, price, ok)
}

리터럴 텍스트와 함께 Sscanf 사용하기

Sscanf는 좌표나 키-값 쌍처럼 구두점으로 숫자를 구분하는 고정된 형식을 처리할 때 유용합니다.

package main

import "fmt"

func main() {
    var x, y int
    fmt.Sscanf("(3,8)", "(%d,%d)", &x, &y)
    fmt.Println(x, y)
}

부동 소수점 값 읽기

소수를 읽으려면 Sscanf에서 %f를 사용하거나 Sscan에 *float64를 전달하십시오.

package main

import "fmt"

func main() {
    var temp float64
    fmt.Sscanf("21.5C", "%fC", &temp)
    fmt.Println(temp)
}

Scan과 표준 입력

fmt.Scan과 fmt.Scanf는 Sscan이 문자열에서 읽는 것과 같은 방식으로 표준 입력에서 읽습니다. 구문 분석 규칙은 동일하고 입력 출처만 다릅니다.

package main

import "fmt"

func main() {
    line := "100 200"
    var a, b int
    fmt.Sscan(line, &a, &b)
    fmt.Println(a * b)
}

작은 구문 분석기

스캔과 계산을 결합해 레코드를 구문 분석하고 결과를 만들어 보십시오.

package main

import "fmt"

func main() {
    var name string
    var qty int
    var unit float64
    fmt.Sscanf("pen 3 1.25", "%s %d %f", &name, &qty, &unit)
    fmt.Printf("%s total: $%.2f\n", name, float64(qty)*unit)
}

빠른 확인

결과를 저장하려면 스캔 함수에 무엇을 전달해야 합니까?

복습: 입력 스캔

서식화된 입력을 읽는 방법을 배웠습니다:

  • Sscan은 공백 문자로 나누고, Sscanf는 서식 문자열을 따릅니다.
  • 각 대상에 &를 사용해 포인터를 전달하십시오.
  • 잘못된 입력을 감지하려면 반환된 개수와 오류를 확인하십시오.
package main

import "fmt"

func main() {
    var d, mo, y int
    fmt.Sscanf("30/05/2026", "%d/%d/%d", &d, &mo, &y)
    fmt.Println(y, mo, d)
}

자주 묻는 질문

“입력 스캔하기” 강의는 무료인가요?

네 — “입력 스캔하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Go Academy 강의 전체를 잠금 해제할 수 있습니다. Go Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“입력 스캔하기”에서 뭘 배우나요?

서식이 지정된 입력 읽기 브라우저에서 직접 실행하는 실습 코드로 Go Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Go Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Go Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“입력 스캔하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Go Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Go Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Printf 동사
  2. Sprintf와 Fprintf
  3. Stringer 인터페이스
  4. 입력 스캔하기
← Go Academy(으)로 돌아가기