Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
EfimKR
56 / 29 / 13
Регистрация: 24.06.2014
Сообщений: 247
Записей в блоге: 1
1

В файл записывается только последнее значение

26.08.2014, 13:41. Просмотров 520. Ответов 1
Метки нет (Все метки)

Есть программка которая записывает результат в файл. Что нужно изменить чтобы в файле оставались всё результаты, а не только последний?

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
/*  Написати програму, що реалізує перевірку знання таблички множення. 
Числа для перевірки генеруються випадковим чином. 
Кількість запитань – 12.
 В результаті програма повинна видати кількість балів (за кожну вірну відповідь - 1 бал) 
 і відповідну оцінку "відмінно", "добре", "задовільно", "незадовільно".
Необхідні функції:
• генерація запитання;
• зчитування відповіді користувача;
• перевірка правильності відповіді;
• обчислення балу;
• виведення результату у файл. */
 
#include<iostream>
#include<fstream>
#include<string>
#include<ctime>
#include<cstdlib>
using namespace std;
 
inline void geberation_qeustion(int&, int&);
inline int read_the_answer();
inline bool check(const int&, const int&,const int&);
inline int& calculation_of_the_ball(bool, int&);
inline void file_out(string);
string out_to_screen(const int);
 
int main()
{
    setlocale(0, "");
    string szFamily, rating, in_file;
    int a=0, b=0, c=0;
    int nBall=0;
    srand(unsigned(time(0)));
    ofstream fout("rating.txt", ios_base::out | ios_base::ate);
 
    if (!fout.is_open()) cout << "Файл не может быть открыт или создан\n"; 
    cout<<"Введите вашу фамилию с помощью латинницы\n";
    cin>>szFamily;
 
    for (int i=0; i<12; i++)
    {
        geberation_qeustion(a, b);
        c=read_the_answer();
        nBall=calculation_of_the_ball(check(a, b, c), nBall);
    }
 
    rating=out_to_screen(nBall);
    in_file=szFamily+" "+rating;
    file_out(in_file);
 
    fout.close();
    return 0;
}
 
void geberation_qeustion(int& a, int& b)
{
    a=rand()%9+1; b=rand()%9+1;
    cout<<"\nСколько будет "<<a<<" * "<<b<<" = ";
}
 
int read_the_answer()
{
    int c;
    cin>>c;
    return c;
}
 
bool check(const int& a, const int& b,const int& c)
{
    if ((a*b)==c) return true;
    else return false;
}
 
int& calculation_of_the_ball(bool f, int& b)
{
    if(f) b++;
    return b;
}
 
string out_to_screen(const int b)
{
    char ball[20];
    itoa(b, ball, 10);
    static string r;
    r.assign(ball,2);
    if (b>9) r+=" б. Отлично.";
    else if ( b>6 ) r+=" б. Хорошо.";
    else if ( b>3 ) r+=" б. Удовлетворительно.";
    else r+=" б. Неудовлетворительно";
    cout<<"\nВаша оценка "<<r<<"\n\n";
    return r;
}
 
void file_out(string s)
{
    ofstream fout("rating.txt", ios_base::app);
    fout<<"\n"<<s;
    fout.close();
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2014, 13:41
Ответы с готовыми решениями:

Почему в файл значение дублируется (записывается дважды)?
Суть: при чтении с файла f записываю данные(числа) в массив a. Потом значения этого массива по...

Почему последнее введенное число записывается два раза?
Почему последнее введенное число записывается два раза? #include &lt;stdio.h&gt; #include...

Переполнение знаковых целых чисел: почему значение переменной обнуляется, а не записывается младшее значение?
что то не пойму, как происходит переполнение знаковых целых чисел вот #include &lt;iostream&gt; ...

В односвязный список записывается только один элемент вместо нескольких
Мне нужно, чтобы в односвязный список записывалось сразу несколько элементов, но вместо этого...

В переменную типа string записывается только первое слово строки
Как вписывать предложения в тип string (если возможно)? То есть скажем после string randomstr;...

1
olegoner
162 / 76 / 21
Регистрация: 22.04.2012
Сообщений: 221
26.08.2014, 13:52 2
Попробуй так:

C++
1
ofstream fout("rating.txt", ios_base::out | ios_base::ate | ios_base::app);
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2014, 13:52

Не записывается значение в char
Я реализую алгоритм шифрования BlowFish, алгоритм сам по себе не очень сложный, но при попытке...

В переменную массива записывается не то значение
Вобщем задача такая : есть массив N чисел из него надо удалить повторяющиеся числа. Я написал...

Результат не записывается в файл
#include &quot;studide.h&quot; int main() { ofstream fout(&quot;cpp.txt&quot;); setlocale(LC_CTYPE, &quot;rus&quot;);...


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

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

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