Top.Mail.Ru
Ответы
Аватар пользователя
6 месяцев назад
от

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

Напишите функцию run() error, которая будет считывать параметры из командой строки — размер сетки и процент изначального заполнения. Пример запуска приложения main с заданными параметрами: go build -o main // Скомпилируем программу main 10 20 30 // Сетка 10x20, процент заполнения — 30 Полученные значения запишите в файл config.txt в формате: 10x20 30%

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Просветленный
6мес
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
 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") 
}  
Аватар пользователя
6мес

ну то есть надо считать 3 числа из стандартного ввода и записать в файл да, в чем проблема?