Avatar ·

Как прочитать ввод с клавиатуры (стандартный ввод) в консоли на Go?

لقد بدأت للتو في تعلم Go، ولدي مشكلة بسيطة ولكنها مهمة. أحتاج إلى كتابة برنامج يطلب من المستخدم الاسم والعمر، ثم يعرض تحية. لكنني لا أستطيع فهم كيفية قراءة سلسلة نصية أو رقم من وحدة التحكم بشكل صحيح.

في لغات أخرى (مثل Python)، كنت أستخدم `input()` ببساطة، وفي C++ كنت أستخدم `cin`. أما في Go، فأرى العديد من الطرق: `bufio`، `fmt.Scan`، `os.Stdin`، وهذا يربكني. لقد جربت الخيار الأكثر وضوحًا:

package main

import "fmt"

func main() {
    var name string
    fmt.Print("Введите имя: ")
    fmt.Scan(&name)
    fmt.Println("Привет,", name)
}

ولكن عندما أدخل "Иван Иванов"، يطبع البرنامج فقط "Привет, Иван"، ويتم فقدان الكلمة الثانية. كما أنني لا أفهم كيفية قراءة رقم ومعالجة الأخطاء إذا قام المستخدم بإدخال حروف بدلاً من أرقام. من فضلك، أخبرني كيف أقرأ البيانات من الإدخال القياسي في Go بشكل صحيح وموثوق؟ أحتاج إلى أمثلة للسلاسل النصية (مع المسافات) وللأرقام.

لا توجد إجابات بعد.

تسجيل الدخول لترك إجابة

المدونات