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

Visual C++ и базы данных

Войти
Регистрация
Восстановить пароль
 
KRIOVOEZERKALO
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 4
#1

Хаос в выводе информации в файл - Visual C++ БД

25.12.2016, 13:03. Просмотров 451. Ответов 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
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
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <locale.h>
 
 
using namespace std;
 
struct  FILES
{
    unsigned int size;
    char format[20];
    char name[50];
};
 
FILES *mv;
char path[] = "files.txt";
 
int main()
{
    setlocale(LC_ALL, "Russian");
    fstream *f;
    mv = new FILES;
    f = new fstream();
    int x, y, n = 1;
    char tit[20];
    int flag = 0;
    cout << "1. Добавить новый файл " << endl;
    cout << "2. Искать файл по формату" << endl;
    cout << "3. Искать файл по размеру(Только в мегабайтах) " << endl;
    cout << "4. Список файлов" << endl;
    cout << "0. Выход" << endl;
    do
    {
        cin >> x;
        switch (x)
        {
        case 1:
        {
                  f->open(path, ios_base::app);
                  if (!f)
                  {
                      cout << "File couldn't be opened!";
                  }
                  else
                  {
                      cout << "Имя:";
                      cin >> mv->name;
                      cout << "Размер:";
                      cin >> mv->size;
                      cout << "Формат: ";
                      cin >> mv->format;
                      f->write((char*)mv, sizeof(FILES));
                      f->close();
                  }
        } break;
        case 2:
        {
                  f->open(path, ios_base::in);
                  if (!f)
                  {
                      cout << "File couldn't be opened!";
                  }
                  else
                  {
                      cout << "Укажите формат: ";
                      fflush(stdin);
                      gets_s(tit);
                      while ((f->read((char*)mv, sizeof(FILES))))
                      {
                          if (strcmp(tit, mv->format) == 0)
                          {
                              flag = 1;
                              cout << x << endl;
                              cout << "Имя: " << mv->name << endl;
                              cout << "Размер: " << mv->size << "Mb" << endl;
                              cout << "Формат: " << mv->format << endl;
                          }
                      }
                      f->close();
                      if (!flag)
                          cout << "no file with the same format\n";
                  }
        } break;
        case 3:
        {
                  f->open(path, ios_base::in);
                  if (!f)
                  {
                      cout << "File couldn't be opened!";
                  }
                  else
                  {
                      cout << "Укажите размер: ";
                      cin >> y;
                      while ((f->read((char*)mv, sizeof(FILES))))
                      {
                          if (mv->size == y)
                          {
                              cout << "Имя: " << mv->name << endl;
                              cout << "Размер: " << mv->size << "Mb" << endl;
                              cout << "Формат: " << mv->format << endl;
                          }
 
                      }
 
                  }
                  f->close();
        }break;
        case 4:
        {
                  f->open(path, ios_base::in);
                  if (!f)
                  {
                      cout << "File couldn't be opened!";
                  }
                  else
                  {
                      while ((f->read((char*)mv, sizeof(FILES))))
                      {
                          cout << "Имя: " << mv->name << endl;
                          cout << "Размер: " << mv->size << "Mb" << endl;
                          cout << "Формат: " << mv->format << endl;
 
                      }
                  }
                  f->close();
        }
        }
    } while (x != 0);
    delete(f);
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2016, 13:03     Хаос в выводе информации в файл
Посмотрите здесь:
Ошибка при выводе информации из БД MySQL
C# Исправить ошибку в выводе информации в RichTextBox
PHP При выводе информации из БД, выбивает ошибку
C# .NET 4.x Ошибка при выводе информации с базы
Представление информации при выводе запроса SQL Server
C++ При выводе из файла происходит дублирование информации
C++ Теряется часть информации при выводе в консоль
C++ Программа при выводе доп.информации выдает бред
Дублирование информации при выводе данных - исправить код PHP БД
Ошибка при выводе информации в документе Microsoft Word C#
C (СИ) Не хватает строк в консольном окне при выводе информации
C# Полное зависания программы при выводе информации загрузки процессора на форму

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Digit@ll
Brainsbreaker
877 / 355 / 29
Регистрация: 01.02.2011
Сообщений: 1,540
28.12.2016, 17:39     Хаос в выводе информации в файл #2
Нужно добавить возврат каретки и перенос строки прямо в файл. Смотри назначение специализированных символов таблицы ASCII.
Yandex
Объявления
28.12.2016, 17:39     Хаос в выводе информации в файл
Ответ Создать тему
Опции темы

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