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

Дописать функцию замены строчки

20.04.2020, 11:44. Показов 163. Ответов 4
Метки нет (Все метки)

Помогите дописать функцию изменения строчки в txt файле. Пытаюсь что-то сделать, но ничего не выходит.



Код программы:
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
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <Windows.h>
#include <sstream>
 
using namespace std;
struct Prog
{
    char name[25];
    int ver;
    int year;
    char author[25];
};
 
 
void correct_func(Prog* p, int n);
 
 
 
int main(void)
{
    setlocale(LC_ALL, "rus");
    Prog* p; //p - указатель
    p = new Prog[4]; //Динамическое выделение памяти под массив
    correct_func(p, 4);
    delete[]p; //Освобождение памяти
    fstream file("1.txt");
    if (file.is_open())
        {
        cout << "Файл открыт." << endl;
        string line;
        while (getline(file, line))
        {
            string name, author;
            int year;
            float ver;
            std::istringstream iss(line);
            iss >> author >> name >> year >> ver;
            cout << "Данные из файла:" << endl;
            cout << "\tAuthor: " << author << endl;
            cout << "\tName: " << name << endl;
            cout << "\tYear: " << year << endl;
            cout << "\tVer: " << ver << endl;
            }
    }
    else
    {
        cout << "Не удалось открыть файл." << endl;
 
 
   system("pause");
    }
    return 0;
};


Содержимое txt:
C++
1
2
3
4
Name1 Author1 1 2001
Name2 Author2 2 2002
Name3 Author3 3 2003
Name4 Author4 4 2004

Как пытаюсь поменять:
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
void correct_func(Prog* p, int n)
{
    int key0 = 0;
    int key = 0;
    cout << "Нужно исправлять данные? (1 - да/0 - нет)" << endl;
    cin >> key0;
    while (key0 != 0)
    {
 
        if (key0 == 1)
        {
            cout << "В какой строке?" << endl;
            cin >> key;
            if ((key != 1) && (key != 2) && (key != 3) && (key != 4))
            {
                cout << "Такой строки нет" << endl;
            }
 
            if ((key == 1) or (key == 2) or (key == 3) or (key == 4))
            {
              cout << "Введите изменения в " << key << " строке:" << endl;
              cout << "Имя программы: " << endl;
              cin >> p[key - 1].name;
              cout << "Версия: "  << endl;
              cin >> p[key - 1].ver;
              cout << "Год: "  << endl;
              cin >> p[key - 1].year;
              cout << "Автор: "  << endl;
              cin >> p[key - 1].author;
            }
        }
        cout << endl << "Нужно ещё исправлять? (1 - да/0 - нет)" << endl;
        cin >> key0;
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2020, 11:44
Ответы с готовыми решениями:

Разработать программу, которая содержит функцию замены местами первого и последнего столбцов матрицы и функцию
Разработать программу, которая содержит функцию замены местами первого и последнего столбцов...

Ввод строчки через функцию
Программа по идее работающая.Но появилась проблема выдает ошибкуБпотому как отсутствует оператор...

Вызвать функцию, имея название функции в виде строчки
Есть строчка 'core', далее есть объект Обычно вызываю data.core(....), так вот имеем...

Дописать функцию Си
Язык Си Нужно дописать функцию. Функция ищет сколько раз повторяется один и то же ряд чисел и...

4
2413 / 1159 / 429
Регистрация: 08.11.2016
Сообщений: 3,232
20.04.2020, 13:12 2
В где и чего менять хотите?

Выделили память под 4 структуры типа Prog, затем запускаете свою correct_func передавая ей указатель на массив структур и вводите там данные, затем освобождаете память (все что навводили пропало) и только потом лезете в какой-то файл, что-то тут не так.
0
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 11
20.04.2020, 13:19  [ТС] 3
Да вот и не могу разобраться,как все реализовать правильно
0
2413 / 1159 / 429
Регистрация: 08.11.2016
Сообщений: 3,232
20.04.2020, 14:41 4
Scar15, а что реализовать-то хотите? Заполнить массив структур и записать его в файл, а затем иметь возможность корректировать этот файл?
0
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 11
20.04.2020, 14:44  [ТС] 5
Да, необходимо считывать файл txt (4 строчки, название/автор/версия/год). Потом отображать это в консоли. И предлагать пользователю редактировать одну из 4 строк.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2020, 14:44
Помогаю со студенческими работами здесь

Дописать функцию удаления
Нужно сделать функцыю удаления, а я незнаю как, помогите... #include &lt;conio.h&gt; #include...

дописать функцию try – catch
Превышение допустимой температуры плафона. // Содержание файла Lamp.h //...

Дописать функцию main
здравствуйте, нужна помощь, я уже почти дописал проект свой, все практически готова, осталось лишь...

Не могу дописать функцию
Приветствую! Прошу помочь в написании последней функции studentsGrup. Которая должна подсчитывать...

Односвязные списки. Реализовать функцию для удаления строчки из структуры по заданному номеру
Всем привет, не знаю создавалась ли подобная тема (нашел кое что похожее но не помогло) Столкнулся...

Нужно удалить все строчки, которые удовлетворяют условию заданой строчки
нужно удалить все строчки которые удовлетворяют условию заданой строчки, а то написал находит...


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

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

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