Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/40: Рейтинг темы: голосов - 40, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 28
1

Как изменить определенную строку в текстовом файле?

25.11.2015, 21:33. Показов 7605. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я создаю программу Contacts. У каждого контакта есть свои данные: id, name... и т.д. Но это не важно. После завершение добавление контактов в текстовой файл, я хочу записать количество контактов в самую первую строку текстового файла? Я хочу изменять его каждый раз. А как это сделать? Я просто начинающий первокурсник... Сегодня начали проходит библиотеку fstream...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2015, 21:33
Ответы с готовыми решениями:

Как при нажатии на кнопку прочитать определенную строку в текстовом файле?
Всем привет :) мне надо по нажатию на кнопку прочитать файл на СД и записать в стринг с...

Как изменить определенную строку в файле
Всем привет. Подскажите, пожалуйста, как мне изменить определенную строку в файле. У меня есть...

Найти в текстовом файле строку по заданному слову и заменить ей определённую часть строки в другом файле
Всех с Новым Годом! Наверное избитая тема, но все же... Задача такая: Существует два файла:...

Необходимо в текстовом файле найти определенную строку, в которой имеется спец.символ и удалить строку
К примеру в файле есть записи: Привет Привет Хороший День Мне нужно, что бы запись с символом...

6
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
25.11.2015, 21:34 2
JamboProduction, свою наработку покажете или нам написать код с нуля?
0
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 28
25.11.2015, 21:35  [ТС] 3
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
 
class Account{
    
    public:
        int id;
        string name;
        string surname;
        string country;
        int salary;
        
    public:
        Account(){
            id = 0;
            name = "Zhandos";
            surname = "Ainabek";
            country = "Kazakhstan";
            salary = 1000000;
        }
        
    public:
        Account(int idd, string namee, string surnamee, string countryy, int salaryy){
            id = idd;
            name = namee;
            surname = surnamee;
            country = countryy;
            salary = salaryy;
        }
    
    public:
        void printData();
 
};
 
    void getMenu(){
        cout<<"[1] - TO ADD USER"<<endl;
        cout<<"[2] - TO LIST USER"<<endl;
        cout<<"[3] - TO DELETE USER"<<endl;
        cout<<"[0] - TO EXIT USER"<<endl;
    }
    
    void Account::printData(){
        cout<<id<<" - "<<name<<" - "<<surname<<" - "<<country<<" - "<<salary<<endl;
    }
 
 
int main(){
    
    int choice;
    string none = "";
 
    vector <Account> data(0);
    
    ifstream inFile("memory.txt");
    if(inFile.is_open()){
        
        while(!inFile.eof()){
            int id;
            string name;
            string surname;
            string country;
            int salary;
            
            inFile>>id;
            inFile>>name;
            inFile>>surname;
            inFile>>country;
            inFile>>salary;
            
            Account add(data.size()+1, name, surname, country, salary);
            data.push_back(add);
        }
    }
    inFile.close();
    
    while(true){
        
        getMenu();
        cin>>choice;
        
        if(choice!=0){
            
            if(choice==1){
                cout<<"Add the name: ";
                string name;
                cin>>name;
                
                cout<<"Add the surname: ";
                string surname;
                cin>>surname;
                
                cout<<"Add the country: ";
                string country;
                cin>>country;
                
                cout<<"Add the salary: ";
                int salary;
                cin>>salary;
                
                Account add(data.size()+1, name, surname, country, salary);
                
                data.push_back(add);
                
            }else if(choice==2){
                for(int i=0;i<data.size();i++){
                    data[i].printData();    
                }    
            }else if(choice==3){
                
            }
            
            
        }else if(choice>3 || choice<0){
            cout<<"WRONG COMMAND"<<endl; 
        }else{
            
            ofstream outFile("memory.txt");
            if(outFile.is_open()){
                outFile<<none;
                for(int i=0;i<data.size();i++){
                    outFile<<data[i].id<<endl;
                    outFile<<data[i].name<<endl;
                    outFile<<data[i].surname<<endl;
                    outFile<<data[i].country<<endl;
                    outFile<<data[i].salary;
                }
            }
            outFile.close();
            
            break;
        }
    }
 
 
 
 
    return 0;
}
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
25.11.2015, 21:40 4
Зарезервируй сразу место нужным количеством пробелов и переводом строки.
0
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
25.11.2015, 21:51 5
Цитата Сообщение от JamboProduction Посмотреть сообщение
После завершение добавление контактов в текстовой файл, я хочу записать количество контактов в самую первую строку текстового файла?
Это потребовало бы изменить размер первой строки. Проблема в том, что записать что либо в начало файла можно. А вот вставить в начало файла дополнительное место - нет. Ну или теоретически можно, но только кусками по четыре килобайта и гвоздями прибито к конкретной файловой системе. Технические ограничения, связанные с низкоуровневой реализацией файлов. Так что у вас три пути:
1) Писать первую строчку первой, последнюю последней.
2) Сделать первую строчку фиксированного размера, дополняя пробелами до, скажем, 80 символов.
3) Отказаться от текстового файла. В бинарном все числа будут иметь фиксированный размер, так что проблема "как вставить еще немножко места" отпадет.
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
25.11.2015, 22:16 6
Зачем до 80-и? 3-4 пробела хватит.
0
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
25.11.2015, 22:56 7
Цитата Сообщение от nmcf Посмотреть сообщение
Зачем до 80-и? 3-4 пробела хватит.
Затем, что мне текстовый режим 80x25 символов на экран вспомнился. А так, конечно, можно обойтись и куда меньшим резервом.
0
25.11.2015, 22:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2015, 22:56
Помогаю со студенческими работами здесь

Как изменить строку в много_строчном текстовом файле ?
Здравствуйте Загрузил много_строчный текстовой файл в память и например вывел 3 строку файла в...

Изменить строку с датой в текстовом файле
Задача: изменить строку с датой в ini файле. Хотелось бы изменять дату автоматически с помощью...

Как удалить определённую строку в файле?
Дан файл, в нём содержится текст.Удалить определённую строку. Удаление происходит через запрос...

Как прочитать определённую строку в файле?
Хелло у меня небольшая проблема... Мне надо что бы в print выводилась мне нужная строка но у меня...

Как можно изменить определенную строку в comboBox?
В проекте WinForms есть combobox. В его коллекции куча строк (элементов, как угодно). Как можно...

Как заменить определённую строку (по номеру) в файле?
Как заменить определённую строку(по номеру) в файле???


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru