से एक पूर्णांक पढ़ना मानक इनपुट से पूर्णांक इनपुट प्राप्त करने के लिए मैं fmt.Scanf
फ़ंक्शन में कैसे उपयोग करूं?मानक इनपुट
यदि यह fmt.Scanf
का उपयोग करके नहीं किया जा सकता है, तो एक पूर्णांक को पढ़ने का सबसे अच्छा तरीका क्या है?
से एक पूर्णांक पढ़ना मानक इनपुट से पूर्णांक इनपुट प्राप्त करने के लिए मैं fmt.Scanf
फ़ंक्शन में कैसे उपयोग करूं?मानक इनपुट
यदि यह fmt.Scanf
का उपयोग करके नहीं किया जा सकता है, तो एक पूर्णांक को पढ़ने का सबसे अच्छा तरीका क्या है?
http://golang.org/pkg/fmt/#Scanf
सभी जाओ में शामिल पुस्तकालयों अच्छी तरह से प्रलेखित रहे हैं।
कहा जा रहा है, मेरा मानना है कि
func main() {
var i int
_, err := fmt.Scanf("%d", &i)
}
चाल
एक वैकल्पिक कि थोड़ा अधिक संक्षिप्त बस का उपयोग करने के fmt.Scan
है हो सकता है करता है:
package main
import "fmt"
func main() {
var i int
fmt.Scan(&i)
fmt.Println("read number", i, "from stdin")
}
इस पर प्रतिबिंब का उपयोग करता है यह जानने के लिए तर्क का प्रकार कि इनपुट को पार्स किया जाना चाहिए।
आपको त्रुटियों की जांच किए बिना ऐसा नहीं करना चाहिए;) – kyrias
यहाँ मेरी "फास्ट आईओ" धनात्मक पूर्णांक पढ़ने के लिए विधि है। इसे बिट्सफिफ्ट के साथ बेहतर किया जा सकता है और अग्रिम में स्मृति को बिछाया जा सकता है।
package main
import (
"io/ioutil"
"bufio"
"os"
"strconv"
)
func main() {
out := bufio.NewWriter(os.Stdout)
ints := getInts()
var T int64
T, ints = ints[0], ints[1:]
..
out.WriteString(strconv.Itoa(my_num) + "\n")
out.Flush()
}
}
func getInts() []int64 {
//assumes POSITIVE INTEGERS. Check v for '-' if you have negative.
var buf []byte
buf, _ = ioutil.ReadAll(os.Stdin)
var ints []int64
num := int64(0)
found := false
for _, v := range buf {
if '0' <= v && v <= '9' {
num = 10*num + int64(v - '0') //could use bitshifting here.
found = true
} else if found {
ints = append(ints, num)
found = false
num = 0
}
}
if found {
ints = append(ints, num)
found = false
num = 0
}
return ints
}
Golang fmt.Scan Golang fmt.Scanf
fmt.Scan त्रुटियों अगर नहीं के बराबर नहीं यानी अगर (जो बजना scanf से अधिक आसान है) की तुलना में आसान है, लॉग & वापसी
import (
"fmt"
"log"
)
var i int
if _, err := fmt.Scan(&i); err != nil {
log.Print(" Scan for i failed, due to ", err)
return
}
fmt.Println(i)
बेस्ट
उदाहरण से: http://www.sortedinf.com/?q=golang-in-1-hour
fmt.Scanf मिनट के बारे में 1 लाख पूर्णांकों स्कैन करने के लिए ले लिया। –
@robertking इसके बजाय एक bufio का उपयोग करने का प्रयास करें यह एक साधारण उदाहरण है। – cthom06
चीयर्स। बुफियो तेज़ है। –