0 / 0 / 0
Регистрация: 23.02.2018
Сообщений: 30
1

Напечатать k-й символ n-й строки файла

07.04.2018, 07:30. Показов 1183. Ответов 4
Метки нет (Все метки)

15.22. Имеется текстовый файл. Напечатать: е) k-й символ n-й строки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2018, 07:30
Ответы с готовыми решениями:

Напечатать первый символ строки из файла
Программа выводит на экран ту строку файла, номер которой вводится в "t". При выводе строки Не...

Напечатать первый символ каждой строки файла
Дан текстовый файл. напечатать первый символ каждой строчки.(заранее не извество какой длинной...

Напечатать первый символ первой строки файла
Имеется текстовый файл. Напечатать: а) первый символ первой строки; б) пятый символ первой...

Напечатать первый символ первой строки файла
Имеется текстовый файл. Напечатать: а) первый символ первой строки; б)пятый символ первой...

4
2480 / 1907 / 951
Регистрация: 21.12.2010
Сообщений: 3,474
Записей в блоге: 10
07.04.2018, 23:15 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <regex>
#include <string>
#include <fstream>
#include <cstdlib>
#include <clocale>
#include <iterator>
 
 
int main()
{
    setlocale(LC_CTYPE, "rus");
    std::fstream ifs("in.txt", std::ios::in); // файл
    if (!ifs.is_open())
    {
        std::cerr << "Unable to open file\n";
        exit(EXIT_FAILURE);
    }
 
    std::string str{ std::istreambuf_iterator<char>{ifs.rdbuf()}, {} }; // чтение файла в строку
    int const n = 3, k = 9; // номера строки и символа
    std::regex reg("^(?:[^\n]*?\n){" + std::to_string(n - 1) + "}[^\n]{" + std::to_string(k - 1) + "}(.)");
    std::smatch mr;
    if (std::regex_search(str, mr, reg))
    {
        std::cout << mr[1] << std::endl;
    }
    
    ifs.close();
 
}
0
134 / 104 / 60
Регистрация: 26.10.2013
Сообщений: 312
07.04.2018, 23:20 3
igorrr37, а если файл занимает N GB?
0
2480 / 1907 / 951
Регистрация: 21.12.2010
Сообщений: 3,474
Записей в блоге: 10
08.04.2018, 12:24 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <clocale>
 
 
int main()
{
    setlocale(LC_CTYPE, "rus");
    std::fstream ifs("in.txt", std::ios::in | std::ios::binary); 
    if (!ifs.is_open())
    {
        std::cerr << "Unable to open file\n";
        exit(EXIT_FAILURE);
    }
 
    int const n = 4, k = 1; // номера строки и символа (нумерация с 1)
    char c = 0;
    int nlCount = 0;
    while (nlCount != n - 1 && ifs.get(c))
    {
        nlCount += ('\n' == c);
    }
    if (nlCount == n - 1 && k > 0)
    {
        int cCount = 0;
        while (cCount != k && ifs.get(c))
        {
            ++cCount;
            if (c == '\n')
            {
                break;
            }
            //std::cout << c;
        }
        //std::cout << std::endl;
        if (cCount == k && c != '\r' && c != '\n')
        {
            std::cout << c << std::endl;
        }
    }
 
 
    ifs.close();
 
}
0
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
28.04.2018, 11:34 5
Bauka077, здравствуйте! Вот еще вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <bits/stdc++.h>
 
    using namespace std;
 
int main() {
    ifstream fin("input.txt");
    int k, n, count;
    string str;
    cout << "Enter a line number:\n";
    cout << "n = ";
    cin >> n;
    cout << "Enter a symbol position:\n";
    cout << "k = ";
    cin >> k;
    if (fin.good()) {
        count = 0;
        while (getline(fin, str)) {
            count++;
            if (count == n)
                for (int i = 1; i <= str.size(); i++) {
                    if (i == k) {
                        cout << k << "-th symbol in the " << n << "-th line: " << str[i-1] << "\n";
                        break;
                    }
                }
        }
    } else {
        cout << "There is no input.txt found!\n";
    }
    fin.close();
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2018, 11:34
Помогаю со студенческими работами здесь

Имеется текстовый файл. Напечатать: а) первый символ первой строки б) k-ый символ n-ой строки
Имеется текстовый файл. Напечатать: а) первый символ первой строки б) k-ый символ n-ой строки

Имеется текстовый файл. Напечатать k-й символ n-й строки
Имеется текстовый файл.Напечатать k-й символ n-й строки

Имеется текстовый файл напечатать k-ый символ n-ой строки
Имеется текстовый файл напечатать k-ый символ n-ой строки С# на формах

Дан текстовый файл. Напечатать первый символ каждой строки
Работа с текстовым (символьным) файлом. Дан текстовый файл. Напечатать первый символ каждой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru