Работа с файлами: Напишите программу 3

Сообщения
1,545
Реакции
271
Веб-сайт
tehadm.ru

Поэтапный поиск данных​

Данная задача в основном ориентирована на изучение типа bufio.Reader, поскольку этот тип позволяет считывать данные постепенно.

В тестовом файле, который вы можете скачать из нашего репозитория на github.com, содержится длинный ряд чисел, разделенных символом ";". Требуется найти, на какой позиции находится число 0 и указать её в качестве ответа. Требуется вывести именно позицию числа, а не индекс (то-есть порядковый номер, нумерация с 1).

Например: 12;234;6;0;78 :
Правильный ответ будет порядковый номер числа: 4
 

Вложения

  • task.zip
    165 KB · Просмотры: 0
C-like:
package main

import (
    "fmt"
    "os"
    "strings"
)

func main() {
    file, _ := os.ReadFile("task.data")

    strspt := strings.Split(string(file), ";")

    for i, el := range strspt {
        if el == "0" {
            fmt.Println(i + 1)
        }
    }
}
 
C-like:
package main

import (
    "bufio"
    "fmt"
    "os"
)

func ReadAndSplit(inputPath string) {
    file, err := os.Open(inputPath)
    if err != nil {
        fmt.Printf("Error occured reading file - %v", err)
    }
    defer file.Close()
    br := bufio.NewReader(file)
    var n int
    for {
        s, err := br.ReadString(';')
        if err != nil {
            return
        }
        n++
        if s == "0;" {
            fmt.Println(n)
            return
        }
    }
}

func main() {
    ReadAndSplit("task.data")
}
 
Назад
Сверху Снизу