के समकक्ष के लिए खोज रहे हैं मैं scanf() के गो समकक्ष की तलाश में हूं। मैं निम्नलिखित कोड के साथ करने की कोशिश की:स्कैनफ़
1 package main
2
3 import (
4 "scanner"
5 "os"
6 "fmt"
7)
8
9 func main() {
10 var s scanner.Scanner
11 s.Init(os.Stdin)
12 s.Mode = scanner.ScanInts
13 tok := s.Scan()
14 for tok != scanner.EOF {
15 fmt.Printf("%d ", tok)
16 tok = s.Scan()
17 }
18 fmt.Println()
19 }
मैं पूर्णांकों की एक पंक्ति के साथ एक पाठ से इनपुट के साथ इसे चलाने के। लेकिन यह हमेशा उत्पादन -3 -3 ...
और कैसे एक स्ट्रिंग और कुछ पूर्णांकों से बना एक लाइन स्कैन करने के लिए? जब भी कोई नया डेटा प्रकार मिलता है तो मोड को बदलना?
पैकेज प्रलेखन:
पैकेज स्कैनर UTF-8 इनकोडिंग पाठ के लिए
एक सामान्य प्रयोजन स्कैनर।
लेकिन ऐसा लगता है कि स्कैनर सामान्य उपयोग के लिए नहीं है।
अपडेट किया गया कोड:
func main() {
n := scanf()
fmt.Println(n)
fmt.Println(len(n))
}
func scanf() []int {
nums := new(vector.IntVector)
reader := bufio.NewReader(os.Stdin)
str, err := reader.ReadString('\n')
for err != os.EOF {
fields := strings.Fields(str)
for _, f := range fields {
i, _ := strconv.Atoi(f)
nums.Push(i)
}
str, err = reader.ReadString('\n')
}
r := make([]int, nums.Len())
for i := 0; i < nums.Len(); i++ {
r[i] = nums.At(i)
}
return r
}
उन्नत संस्करण:
package main
import (
"bufio"
"os"
"io"
"fmt"
"strings"
"strconv"
"container/vector"
)
func main() {
n := fscanf(os.Stdin)
fmt.Println(len(n), n)
}
func fscanf(in io.Reader) []int {
var nums vector.IntVector
reader := bufio.NewReader(in)
str, err := reader.ReadString('\n')
for err != os.EOF {
fields := strings.Fields(str)
for _, f := range fields {
if i, err := strconv.Atoi(f); err == nil {
nums.Push(i)
}
}
str, err = reader.ReadString('\n')
}
return nums
}
अच्छे उत्तर पाने के लिए, आपको अपने प्रश्नों को उत्तर देने में आसान बनाना होगा। उदाहरण के लिए, कोड जिसे आसानी से कॉपी, पेस्ट और संकलित किया जा सकता है। जाओ शिकायत लाइन नंबर स्वीकार नहीं करता है; उन्हें अपने नमूना कोड में न रखें। – peterSO
शायद मूल रूप से पोस्ट होने पर यह अस्तित्व में नहीं था, लेकिन जाओ fmt.Scanf है जो सी स्कैनफ की तरह काम करता है जैसे stdin: var number int fmt.Scanf ("% d", और संख्या) – Myforwik
ओह मेरे भगवान! मैं stdin से एक अच्छा पाठक पाने के लिए घंटों के लिए कोशिश कर रहा हूँ। मैन, मैं बस यह नहीं समझ सका कि इसे कैसे लिखना है। अपना कोड –