Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
#1

Программа должна сохранять данный в файле - C++

29.08.2010, 22:55. Просмотров 2375. Ответов 55
Метки нет (Все метки)

Здравствуйте,я хочу чтобы моя программа сохраняла данные,а именно значения переменных в текстовом или еще в каком нибудь файле(не имеет значения) и могла потом загружать их из этого файла.
Подскажите какую функцию использовать и если надо,то что подключать?Заранее спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2010, 22:55     Программа должна сохранять данный в файле
Посмотрите здесь:
C++ Пользователь вводит 10 чисел программа должна выдать 2 максимальных(берём от 1 до 10,если выпадает 2 10,то программа должна выдать 2 10,а не 10,9)
C++ Разработать программу, позволяющую вводить с клавиатуры, сохранять в файле, просматривать и удалять информацию
C++ Программа отказывается сохранять в файл
C++ Программа отказывается сохранять ответ в файл
C++ Программа должна включаться в 19:00 выключаться в 21:00
C++ Программа обработки прерывания от клавиатуры должна:
программа должна вывести текущую дату C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
30.08.2010, 11:25     Программа должна сохранять данный в файле #41
Цитата Сообщение от bol2909 Посмотреть сообщение
А как тогда проверку temp сделать?
Вы сначала определитесь для чего Вам каждый из этих файлов нужен.
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
30.08.2010, 13:02  [ТС]     Программа должна сохранять данный в файле #42
CyBOSSeR, почитайте пожалуйста тему там все написано
1 файл (temp) нужен для сохранения последнего полученного числа и последующей его перезаписи
2 файл (input) нужен для хранения истории операций то есть какие вводились данные сегодня вчера или еще когда то

Добавлено через 20 минут
Вот мой код единственное чего не хватает это проверки на файл input.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
#include <iostream>
#include <fstream>
#include "conio.h"
 
int main()
{
   std::ifstream ifs;
   ifs.open("temp.txt");
   if(!ifs)
    {std::cout<<"Can`t open file (temp.txt)\nCheck that you created files in the right folder!\n";
   _getch();
   return 0;}
   
 
   int total_money, earnings, costs, now, result;
   ifs>>now;
   std::cout<<"Enter your earnings: ";
   std::cin>>earnings;
   std::cout<<"Enter your costs: ";
   std::cin>>costs;
   total_money=earnings-costs;
   result=total_money+now;
   std::cout<<"Your money: "<< now <<'\n';
   std::cout<<"Your earnings: "<< earnings<< '\n';
   std::cout<<"Your costs: "<< costs<< '\n';
   std::cout<<"Now your money: "<< result<< '\n';
   std::ofstream temp;
   temp.open("temp.txt");
   temp<<result;
   std::ofstream ofs;
   ofs.open("input.txt", std::ios::app);
   ofs<<"Было:"<<now<<' '<<"Доходы:"<<earnings<<' '<<"Расходы:"<<costs<<' '<<"Разница:"<<total_money<<' '<<"Стало:"<<result<<'\n';
    _getch();
   return 0;
}
Добавлено через 19 минут
Добавил дату:

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
#include <iostream>
#include <fstream>
#include "conio.h"
 
int main()
{
   std::ifstream ifs;
   ifs.open("temp.txt");
   if(!ifs)
    {std::cout<<"Can`t open file (temp.txt)\nCheck that you created files in the right folder!\n";
   _getch();
   return 0;}
   
 
   int total_money, earnings, costs, now, result,month,date;
   ifs>>now;
   std::cout<<"Enter the date\n"<<"Date:";
   std::cin>>date;
   std::cout<<"Enter the month\n"<<"Month:";
   std::cin>>month;
   std::cout<<"Enter your earnings: ";
   std::cin>>earnings;
   std::cout<<"Enter your costs: ";
   std::cin>>costs;
   total_money=earnings-costs;
   result=total_money+now;
   std::cout<<"Your money: "<< now <<'\n';
   std::cout<<"Your earnings: "<< earnings<< '\n';
   std::cout<<"Your costs: "<< costs<< '\n';
   std::cout<<"Now your money: "<< result<< '\n';
   std::ofstream temp;
   temp.open("temp.txt");
   temp<<result;
   std::ofstream ofs;
   ofs.open("input.txt", std::ios::app);
   ofs<<"Дата:"<<date<<"."<<month<<' '<<"Было:"<<now<<' '<<"Доходы:"<<earnings<<' '<<"Расходы:"<<costs<<' '<<"Разница:"<<total_money<<' '<<"Стало:"<<result<<'\n';
    _getch();
   return 0;
}
Добавлено через 53 минуты
Кто нибудь знает как сделать проверку input.txt файла?
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
30.08.2010, 13:21     Программа должна сохранять данный в файле #43
У вас есть проверка на открытие файла

Цитата Сообщение от bol2909 Посмотреть сообщение
ifs.open("temp.txt");
if(!ifs)
{std::cout<<"Can`t open file (temp.txt)\nCheck that you created files in the right folder!\n";
_getch();
return 0;}

Если на содержимое файла, то тут надо отлавливать ошибки при чтении, например, вы ожидаете, что в файле сначала целое число, а потом строка, а в файле нет числа, то будет ошибка при чтении через

Цитата Сообщение от bol2909 Посмотреть сообщение
ifs>>now;
Добавлено через 2 минуты
Кстати, файлы лучше явно закрывать, используя метод close().
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
30.08.2010, 13:23  [ТС]     Программа должна сохранять данный в файле #44
У вас есть проверка на открытие файла
Мне нужна еще одна проверка на существование другого файла input.txt !
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
30.08.2010, 13:31     Программа должна сохранять данный в файле #45
Цитата Сообщение от bol2909 Посмотреть сообщение
Мне нужна еще одна проверка на существование другого файла input.txt !
Как узнать, существует ли файл? <-- (тебе нужен способ 9)
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
30.08.2010, 13:41  [ТС]     Программа должна сохранять данный в файле #46
А куда тут вписать название файла?
C++
1
2
3
4
5
#include <io.h>
            bool FileExists(const char *fname)
            {
              return access(fname, 0) != -1;
            }
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
30.08.2010, 13:45     Программа должна сохранять данный в файле #47
Добавьте этот метод перед main и передавайте в него имя файла.
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
30.08.2010, 13:47  [ТС]     Программа должна сохранять данный в файле #48
я не очень понял можете написать функцию?
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
30.08.2010, 14:01     Программа должна сохранять данный в файле #49
bol2909, функцию ты сам написал в посте #46. Вызываешь ее так:
C++
1
2
3
4
5
6
7
8
9
10
const char* filename = "file.txt"; //Имя файла, существование которого проверяешь
bool exists = FileExists(filename);
if(exists)
{
   //Блок кода, если файл существует
}
else
{
  //Блок кода, если файл не существует
}
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
30.08.2010, 14:05  [ТС]     Программа должна сохранять данный в файле #50
Ошибка FileExists: идентификатор не найден
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
30.08.2010, 15:19     Программа должна сохранять данный в файле #51
В чем конкретно у вас проблема что-то не могу понять? Зачем проверки, зачем такая история? Цель?
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
30.08.2010, 15:21  [ТС]     Программа должна сохранять данный в файле #52
чтобы если нету второго файла тоже ошибку выдавало а то получается если файл temp есть а input нету то програма работает
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
30.08.2010, 15:32     Программа должна сохранять данный в файле #53
bol2909, Проверка идет на temp... А input в целом и не обязан быть. Потому что туда идет запись. А если идет запись - файл создается сам. Поэтому проверка вцелом нужна только на чтение, что и было...
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
30.08.2010, 16:06  [ТС]     Программа должна сохранять данный в файле #54
Спасибо а то я не знал что он сам создается =)
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
30.08.2010, 16:08     Программа должна сохранять данный в файле #55
bol2909, Таки советую прочитать пару книжек.
По поводу файла конкретно. Здесь открывается файл на запись в конец файла. Если файла нет - файл создается и в него записывается. Если файл есть - записывается в конец. Соответственно после хотя бы 1 запуска в целевой директории появится файл input.txt.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2010, 16:16     Программа должна сохранять данный в файле
Еще ссылки по теме:
программа должна выводить день недели. C++
Почему программа компилится, хотя компилиться не должна? C++
C++ Программа должна определять корректность вводимой структуры
C++ Программа должна определить длину введенной строки
C++ Программа должна напечатать сумму цифр числа

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

Или воспользуйтесь поиском по форуму:
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
30.08.2010, 16:16  [ТС]     Программа должна сохранять данный в файле #56
У меня есть книга по c++ очень хорошая все четко понятно, но я дошел еще только до ссылок про файлы там вообще ничего нет =)
Yandex
Объявления
30.08.2010, 16:16     Программа должна сохранять данный в файле
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru