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

Файл: Не могу понять, почему данные не записываются в файл, он остается пустым.

11.12.2017, 10:20. Показов 1298. Ответов 10
Метки нет (Все метки)

Здравствуйте , помогите пожалуйста , с записью данных в файл.
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
#include "stdafx.h"
#include<iostream> 
#include<string> 
#include<vector> 
#include <fstream>
#include "windows.h"
using namespace std;
 
struct
{
    string fam, name;
    string phone;
    int birdthdate[3];
} typedef NOTE, *PNOTE;
 
int main()
{
    ofstream f;
    std::string bufStr, text = "";
    std::ifstream inp("test.txt", std::ios::in);
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    vector<PNOTE> notebook;
    int a, b;
    cout << "\t \t \t \t \t Вітаємо вас у нашій програмі! \n";
    system("pause");
    
b: 
    system("cls");
    cout << "\t \t \t \t \t 1.Введеня данних" << endl;
    cout << "\t \t \t \t \t2.Пошук по місяцю" << endl;
    cout << "\t \t \t \t \t3.Завершення програми" << endl;
    cin >> a;
    switch (a)
    {
 
    case 1:
    {
        while (true)
        {
            system("cls");
            PNOTE note = new NOTE;
            cout << "Прізвище: "; cin >> note->fam;
            cout << "Ім'я: "; cin >> note->name;
            cout << "Номер Телефону: "; cin >> note->phone;
            cout << "Дата Народження (дд мм рррр): ";
            cin >> note->birdthdate[0];
            cin >> note->birdthdate[1];
            cin >> note->birdthdate[2];
            notebook.push_back(note);
            cout << "Хочете ввести ще данних? (y - так    /   n - Ні)? ";
            char ch; cin >> ch;
            if
                (ch == 'n' || ch == 'N') {
                goto b;
            }
        }}
 
    case 2:
    {
        system("cls");
        int g = 0, month;
        cout << "Введіть місяць для пошуку: "; cin >> month;
 
        for (auto v : notebook)  // <---------------------------------------
        {
            if (v->birdthdate[1] == month)
            {
                cout << v->fam << " " << v->name << " " <<
                    v->birdthdate[0] << "/" << v->birdthdate[1] <<
                    "/" << v->birdthdate[2] << endl;
                std::ofstream out("test.txt", std::ios::app);
                cout << "\n Запись завершена \n";
                ++g;
            }
            
        }
        
        if (!g)
            cout << "Takih net!" << endl;
system("pause");
goto b;
        for (auto v : notebook)
            delete v;
        break;
    }
    case 3 :
    {
        return 0;
        
    }
    system("pause");
    return 0;
    default:
    {
        break;
        system("pause");
        return 0;
    }
    }
}
не могу понять , почему оно не записывает в файл. Файл остается пустой.
надо записать результат , который проходит по условию
if (v->birdthdate[1] == month)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2017, 10:20
Ответы с готовыми решениями:

Не могу понять почему данные не записываются в БД
Есть форма: &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;...

Почему данные не записываются в .txt файл?
Пытаюсь переделать свой код с С на С++. По задумке в файл должны построчно записываться значения...

Файл остается пустым после записи
Доброго времени суток, появилась проблема которая меня мягко говоря &quot;озадачила&quot; писал приложение на...

После бинарной записи файл всё равно остаётся пустым
Хочу организовать в программе запись во внешний файл, чтобы хранить данные, при необходимости...

10
3362 / 1918 / 368
Регистрация: 09.09.2017
Сообщений: 7,841
11.12.2017, 12:53 2
А где у вас в коде запись в файл?
0
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 7
12.12.2017, 00:25  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
if (v->birdthdate[1] == month)
            {
                cout << v->fam << " " << v->name << " " <<
                    v->birdthdate[0] << "/" << v->birdthdate[1] <<
                    "/" << v->birdthdate[2] << endl;
                std::ofstream out("test.txt", std::ios::app);
                cout << "\n Запись завершена \n";
                ++g;
            }
0
3362 / 1918 / 368
Регистрация: 09.09.2017
Сообщений: 7,841
12.12.2017, 01:12 4
Здесь нет записи в файл - только в консоль.
Цитата Сообщение от Dxforever Посмотреть сообщение
std::ofstream out("test.txt", std::ios::app);
Это только открытие файла, но не перенаправление в него всего вывода.
0
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 7
12.12.2017, 01:53  [ТС] 5
Как тогда будет выглядеть запись?
0
3452 / 2802 / 766
Регистрация: 25.03.2012
Сообщений: 10,228
Записей в блоге: 1
12.12.2017, 02:01 6
Цитата Сообщение от Dxforever Посмотреть сообщение
cout << v->fam << " " << v->name << " " << v->birdthdate[0] << "/" << v->birdthdate[1] << "/" << v->birdthdate[2] << endl; std::ofstream out("test.txt", std::ios::app);
наоборот
C++
1
2
 std::ofstream out("test.txt", std::ios::app);
out<< v->fam << " " << v->name << " " << v->birdthdate[0] << "/" << v->birdthdate[1] << "/" << v->birdthdate[2] << endl;
0
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 7
12.12.2017, 05:42  [ТС] 7
К сожалению , но не записывает :С

Добавлено через 47 секунд
К сожалению , но не записывает :С
наоборот
0
3452 / 2802 / 766
Регистрация: 25.03.2012
Сообщений: 10,228
Записей в блоге: 1
12.12.2017, 12:29 8
Я гадать должен, что ты изменил? Показывай. Новую программу!
0
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 7
12.12.2017, 14:00  [ТС] 9
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
наоборот
C++
1
2
 std::ofstream out("test.txt", std::ios::app);
out<< v->fam << " " << v->name << " " << v->birdthdate[0] << "/" << v->birdthdate[1] << "/" << v->birdthdate[2] << endl;
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
#include "stdafx.h"
#include<iostream> 
#include<string> 
#include<vector> 
#include <fstream>
#include "windows.h"
using namespace std;
 
struct
{
    string fam, name;
    string phone;
    int birdthdate[3];
} typedef NOTE, *PNOTE;
 
int main()
{
    ofstream f;
    std::string bufStr, text = "";
    std::ifstream inp("test.txt", std::ios::in);
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    vector<PNOTE> notebook;
    int a, b;
    cout << "\t \t \t \t \t Вітаємо вас у нашій програмі! \n";
    system("pause");
    
b: 
    system("cls");
    cout << "\t \t \t \t \t 1.Введеня данних" << endl;
    cout << "\t \t \t \t \t2.Пошук по місяцю" << endl;
    cout << "\t \t \t \t \t3.Завершення програми" << endl;
    cin >> a;
    switch (a)
    {
 
    case 1:
    {
        while (true)
        {
            system("cls");
            PNOTE note = new NOTE;
            cout << "Прізвище: "; cin >> note->fam;
            cout << "Ім'я: "; cin >> note->name;
            cout << "Номер Телефону: "; cin >> note->phone;
            cout << "Дата Народження (дд мм рррр): ";
            cin >> note->birdthdate[0];
            cin >> note->birdthdate[1];
            cin >> note->birdthdate[2];
            notebook.push_back(note);
            cout << "Хочете ввести ще данних? (y - так    /   n - Ні)? ";
            char ch; cin >> ch;
            if
                (ch == 'n' || ch == 'N') {
                goto b;
            }
        }}
 
    case 2:
    {
        system("cls");
        int g = 0, month;
        cout << "Введіть місяць для пошуку: "; cin >> month;
 
        for (auto v : notebook)  // <---------------------------------------
        {
            if (v->birdthdate[1] == month)
            {
                std::ofstream out("test.txt", std::ios::app);
                cout << v->fam << " " << v->name << " " <<
                    v->birdthdate[0] << "/" << v->birdthdate[1] <<
                    "/" << v->birdthdate[2] << endl;
               
                cout << "\n Запись завершена \n";
                ++g;
            }
            
        }
        
        if (!g)
            cout << "Takih net!" << endl;
system("pause");
goto b;
        for (auto v : notebook)
            delete v;
        break;
    }
    case 3 :
    {
        return 0;
        
    }
    system("pause");
    return 0;
    default:
    {
        break;
        system("pause");
        return 0;
    }
    }
}
0
3452 / 2802 / 766
Регистрация: 25.03.2012
Сообщений: 10,228
Записей в блоге: 1
12.12.2017, 16:14 10
Лучший ответ Сообщение было отмечено Dxforever как решение

Решение

Dxforever, глаза разуй. Что у тебя и что у меня сравни
1
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 7
13.12.2017, 04:20  [ТС] 11
Dxforever, глаза разуй. Что у тебя и что у меня сравни
всё равно не пишет.
C
1
2
3
4
5
6
7
8
9
10
11
if (v->birdthdate[1] == month)
            {
                std::ofstream out("test.txt", std::ios::app);
                out << v->fam << " " << v->name << " " << v->birdthdate[0] << "/" << v->birdthdate[1] << "/" << v->birdthdate[2] << endl;
                cout << v->fam << " " << v->name << " " <<
                    v->birdthdate[0] << "/" << v->birdthdate[1] <<
                    "/" << v->birdthdate[2] << endl;
                
                cout << "\n Запись завершена \n";
                ++g;
            }
Добавлено через 11 минут
Dxforever, глаза разуй. Что у тебя и что у меня сравни
Спасибо , начало писать)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2017, 04:20

Не могу понять почему в файл OUTPUT.TXT ничего не записывается
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main() { int n,i;...

Почему этот вектор остаётся пустым?
Есть такой класс: typedef std::vector &lt;lab_Arr_t *&gt; lab_Stack_t; /*...

Не записываются данные в файл
Не записываются переменная в файл вот код: void __fastcall TForm1::Button7Click(TObject *Sender)...

Не записываются данные в файл
Мне нужно чтобы результат записывался в файл вывода,я вроде все сделал верно но почему-то они не...


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

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

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