Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу на Go!

Астол Сандера Ученик (104), открыт 3 недели назад
Напишите функцию run() error, которая будет считывать параметры из командой строки — размер сетки и процент изначального заполнения. Пример запуска приложения main с заданными параметрами: go build -o main // Скомпилируем программу main 10 20 30 // Сетка 10x20, процент заполнения — 30 Полученные значения запишите в файл config.txt в формате: 10x20 30%
2 ответа
tr fbfv 42343411dd Мастер (2017) 3 недели назад
ну то есть надо считать 3 числа из стандартного ввода и записать в файл да, в чем проблема?
Анонимус Мудрец (16200) 3 недели назад
 package main 
import (
"fmt"
"os"
"strconv"
)
// Функция run считывает параметры из командной строки и записывает их в файл config.txt
func run() error {
if len(os.Args) != 3 {
return fmt.Errorf("некорректное количество аргументов. Ожидалось: <ширина> <высота> <процент заполнения>")
}
width, err := strconv.Atoi(os.Args[1])
if err != nil {
return fmt.Errorf("ошибка преобразования ширины: %v", err)
}
height, err := strconv.Atoi(os.Args[2])
if err != nil {
return fmt.Errorf("ошибка преобразования высоты: %v", err)
}
// Получаем процент заполнения
if len(os.Args) == 4 {
fillPercentage, err := strconv.Atoi(os.Args[3])
if err != nil {
return fmt.Errorf("ошибка преобразования процента заполнения: %v", err)
}
// Записываем в файл
config := fmt.Sprintf("%dx%d %d%%\n", width, height, fillPercentage)
return writeConfigToFile("config.txt", config)
}
return fmt.Errorf("процент заполнения не указан")
}
// Функция для записи конфигурации в файл
func writeConfigToFile(filename, config string) error {
file, err := os.Create(filename)
if err != nil {
return fmt.Errorf("ошибка создания файла: %v", err)
}
defer file.Close()
_, err = file.WriteString(config)
if err != nil {
return fmt.Errorf("ошибка записи в файл: %v", err)
}
return nil
}
func main() {
err := run()
if err != nil {
fmt.Println("Ошибка:", err)
os.Exit(1)
}
fmt.Println("Конфигурация успешно записана в config.txt")
}
Похожие вопросы