Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2017, 15:57   #1
Alistra
 
Регистрация: 26.12.2017
Сообщений: 6
Печаль Сохранение в файл символьных массивов.

Здравствуйте. Я всего месяц изучаю С++ и сейчас застряла на одной задачи. Пользователь вводит предложение(строку), программа будет предлагать пользователю ввести предложение за предложением, пока пользователь сам не захочет завершить ввод данных. Каждая введенная строка должна после ввода сохраняться в файл.txt. Так же после завершения ввода, пользователь может просмотреть нужную информацию из сохраненного файла.
(напоминает записную книжку)

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

Если нужны примеры моих жалких попыток, напишите, я отправлю.
Первый раз обращаюсь в форум) Надеюсь на вашу помощь.(желательно с пояснением, как работает код.)

Последний раз редактировалось Alistra; 26.12.2017 в 16:02.
Alistra вне форума Ответить с цитированием
Старый 26.12.2017, 16:49   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Все-таки ваш код очень помог бы телепатировать. А пока: либо вы переоткрывает файл для каждой строки без флага дозаписи, либо при вводе строк пишите их в один и тот же массив/...
p51x вне форума Ответить с цитированием
Старый 26.12.2017, 18:03   #3
Alistra
 
Регистрация: 26.12.2017
Сообщений: 6
По умолчанию

Спасибо,за ответ. Мне не нужно просто решение, мне нужно понять как оно работает и увидеть правильную логику. Я не студентка, а просто самоучка.
А пока писала код чтобы приложить к своему сообщению, сама нашла ошибку (не было уточнения для записи в файл: ios_base::app). Но вопрос остался прежний,только уровень не много поменялся. Теперь я пытаюсь сохранить в файл класс. Но сохраняется теперь только первый ввод, а остальные игнорирует.

#include <iostream>
#include <windows.h>
#include <fstream>
#include <iomanip>

using namespace std;

class Work{
private:
char Name[15];
int Age;
public:
void SetData(){
cout<<"Введите ваше имя: "; cin.getline(Name,15);
cin.ignore();
cout<<"Укажите возраст: "; cin>>Age;
}
void getData(){
cout<<setw(10)<<"Имя"<<setw(10)<<"\ tВозраст"<<endl;
cout<<setw(10)<<Name<<setw(10)<<" "<<Age<<endl;
}
};

int main ()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

cout<<"Программа для ввода имени и возраста, и сохранение данных\n";
int Exit=0;

while(Exit == 0)
{
Work Obje1;
Obje1.SetData();
Obje1.getData();

ofstream Save("Text.txt",ios_base::app);

if(!Save.is_open())
{
cout<<"\nФайл не открылся!\n";
}
else
{
Save.write((char*)&Obje1, sizeof(Work));
}
Save.close();

cout<<endl<<"\n----------------------"<<endl;
cout<<"Для продолжения- 0, для выхода - 1\n";
cin>>Exit;
cin.ignore();
}
cout<<"Все сохраненно:\n";

ifstream Show("Text.txt");
if(!Show.is_open())
{
cout<<"\nФайл не открылся!\n";
}
else
{
Work Obje2;
while(Show.read((char*)&Obje2, sizeof(Work)))
{
Obje2.getData();
}
}
Show.close();

return 0;
}
Alistra вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение в файл массивов SAMOUCHKA Общие вопросы по Java, Java SE, Kotlin 0 27.10.2013 00:15
Обработка символьных массивов в delphi Manya-srt Помощь студентам 0 09.11.2010 16:23
Обработка символьных массивов. Вывод кодовой таблицы. Manya-srt Помощь студентам 0 08.11.2010 17:05
Разработка программ обработки символьных массивов 3JIY4KA Помощь студентам 4 11.03.2008 23:22