Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 7
1

Найти причины и способы исправления ошибок в коде (файловый ввод/вывод)

10.12.2015, 17:27. Показов 721. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста найти ошибку


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
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream" 
#include "fstream"
#include "iomanip"
 
 
using namespace std;
const int N = 256;
struct Book {               ////
    char name_book[50];     ////
    char fio[50];           ////структура
    int str;                ////
                            ////
};
 
void ReadFile()//функция считывание информации из файла
{
    
    char S[N] = {""}; //В S будут считываться строки
    ifstream in1("1.txt"); //Открыли файл для чтения
    while (!in1.eof()) //Будем читать информацию пока не дойдем до конца файла
    {
        in1.getline(S, N); //Построчное считывание информации в S
        cout << S << endl; //Вывод очередной строки на экран
    }
    
    in1.close();  //Закрыли открытый файл
} 
void CreateFile() { ///// фУНКЦИЯ ЗАПИСИ ИНФОРМАЦИ В ФАЙЛ 
    int n;
    do
    {
        cout << "Введите количество книг:" << endl;
        cin >> n;
    } while (n < 0);
    Book book;
    for (int i = 0; i < n; i++)
    {
        cout << "Введите название книги: ";
        cin >> book.name_book;
        cout << "Введите фамилию автора: ";
        cin >> book.fio;
        cout << "Введите колличество страниц: ";
        cin >> book.str;
    }
    ofstream f;
    f.open("1.txt", ios::app);
    for (int i = 0; i<n; i++)
    {
        f << book.name_book << " " << book.fio << " " << book.str << endl;//САМА Запись в файл 
    }
} 
    void DeleteFile()/// ОТЧИСТКА ФАЙЛА 
{
    ofstream f;
    f.open("1.txt", ios::out);  
}
 
    int FromFile(Book* book, int &size)
    {
        int i = 0;
        char S;
        ifstream myfile("C:\1.txt");
        while (!myfile.eof())
        {
            
            myfile.getline(book[i].name_book, 10);
            myfile.getline(book[i].fio, 10);
            myfile >> book[i].str;
            
            i++;
        }
        myfile.close();
        size = i - 1; //size будет нужен для того чтоб указывать размерность массива
        return 0;
    }
    void ShowData(Book*M, int N)
    {
        for (int i = 0; i<N; i++)
        {
            cout << M[i].name_book << endl;
            cout << M[i].fio << endl;
            cout << M[i].str << endl;
            
        }
    }
int main()
{
    int a;
    int size=0;//размерность массива
    Book bo[100];
    int c=1;
    setlocale(LC_ALL, "Russian");
    cout << "1-прочесть содержимое файла " << endl;
    cout << "2-добавить книгу в файл " << endl;
    cout << "3-очистить файл " << endl;
    cout << "4-прочесть содержимое файла " << endl;
    cout << "Введите номер операции ";
    cin >> a;
    
    switch (a)   //// ОПЕРАТОР SWITCH CASE для выбора операции 
    {
    case 1: ReadFile(); break; //вызов функции считывание информации из файла 
    case 2: CreateFile(); break; //вызов функции добавление информации из файла
    case 3:  DeleteFile(); break;// вызов функции отчистки файла 
    case 4:  FromFile(bo, size); ShowData(bo,c); break; 
    }
 
    
    
    return 0;
}
Миниатюры
Найти причины и способы исправления ошибок в коде (файловый ввод/вывод)  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2015, 17:27
Ответы с готовыми решениями:

Найти причины и способы устранения ошибок в коде и организовать файловый ввод/вывод
Уплотнить массив, удалив из него все нулевые строки и столбцы Почему то код не работает и как...

Найти причины и способы устранения ошибок в коде (структуры, файловый ввод/вывод)
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std; struct avto ...

Найти причины и способы исправления ошибок в коде
Почему она не компилируется? #include &lt;iostream.h&gt; #include &lt;algorithm&gt; using namespace std; ...

Найти причины и способы исправления ошибок в коде
Что не так? #include &lt;iostream&gt; #include &lt;conio.h&gt; using std::cout; using std::endl; int...

1
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
10.12.2015, 19:25 2
Считываешь неправильно. Почему там 10? Если поля содержат пробелы, то лучше записывать каждое в свою строку. Или использовать разделитель, отличный от пробела и не встречающийся в самих полях.
0
10.12.2015, 19:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2015, 19:25
Помогаю со студенческими работами здесь

Найти причины и способы исправления ошибок в коде
#include&lt;iostream&gt; #include&lt;iomanip&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;stdlib.h&gt;...

Найти причины и способы исправления ошибок в коде
Помогите найти ошибку, вылетает где то в for. #include &lt;iostream&gt; #include &lt;map&gt; #define gc...

Найти причины и способы исправления ошибок в коде
ввожу: 2 + тут он мне пишет &quot;???&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string&gt;...

Найти причины и способы исправления ошибок в коде
Программа из 2 модулей падает в этом месте x=x*y; y=x/y; x=x/y; пишет что типа делить на...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru