आप str::parse()
कॉल कर सकते हैं, लेकिन आप यह सुनिश्चित करें कि read_line
काम कर रहा है बनाने की जरूरत है। हम एक रीडर की आवश्यकता:
use std::io;
fn main() {
let reader = io::stdin();
}
stdin
वैश्विक बफर कि इनपुट धारा संभालती है पढ़ता है और भी BufRead
विशेषता जो read_line
method विधि है लागू करता है। यह एक इनपुट बफर के रूप में एक mutable String
लेता है और स्ट्रीम से सभी बाइट्स पढ़ता है जब तक कि एक न्यूलाइन बाइट तक नहीं पहुंच जाता है और उन्हें बफर में जोड़ता है। #expect()
विधि Result
को अनदेखा करती है; यदि यह Err
है तो यह संदेश और कारण से घबराएगा।
use std::io;
fn main() {
let reader = io::stdin();
let mut input_text = String::new();
reader.read_line(&mut input_text).expect("failed to read line");
}
अब हम इनपुट पाठ है कि हम एक i32
में तब्दील करना चाहते हैं। यह वह जगह है जहां str::parse()
हमारे लिए काम करेगा, जब तक हम इसे एक प्रकार का विश्लेषण करने के लिए देते हैं। str::trim()
हम अभी भी सुनिश्चित करना है कि हम सफलतापूर्वक इनपुट पैटर्न मिलान का उपयोग कर पार्स जरूरत है क्योंकि read_line
न्यू लाइन बाइट बफर
use std::io;
fn main() {
let reader = io::stdin();
let mut input_text = String::new();
reader.read_line(&mut input_text).expect("failed to read line");
let input = input_text.trim().parse::<i32>();
}
हम अभी तक नहीं किया है भी शामिल है के लिए आवश्यक है,। सभी कोड आप एक प्रयोग करने योग्य पूर्णांक में अपने मूल इनपुट बफर बदलने की आवश्यकता है:
use std::io;
fn main() {
let reader = io::stdin();
let mut input_text = String::new();
reader.read_line(&mut input_text).expect("failed to read line");
let input_opt = input_text.trim().parse::<i32>();
let input_int = match input_opt {
Ok(input_int) => input_int,
Err(e) => {
println!("please input a number ({})", e);
return;
}
};
println!("{}", input_int);
}
यह त्रुटि या चेतावनी के बिना संकलित करता है।
इस उत्तर 'old_io' मॉड्यूल है, जो जंग 1.0 में उपलब्ध नहीं है को संदर्भित करता है; यह जवाब अब उपयोगी नहीं है। – Shepmaster