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

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

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

Вывод лишней информации из файла - C++

17.11.2013, 13:44. Просмотров 354. Ответов 5
Метки нет (Все метки)

Если я просто выберу 2 пункт (вывод информации), то количество элементов считается правильно и вывод осуществляется корректно. Если же я сначала произведу дозапись в файл, а потом попытаюсь вывести информацию, то помимо информации файла выводится белиберда, т.к. подсчет элементов осуществляется неправильно.

Помогите решить проблему.

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
/*12.Word: Слово; Номера страниц, на которых слово встречается (от 1 до 10); 
Число страниц. Создать массив объектов. Вывести:
a) слова, которые встречаются более чем на N страницах;
b) слова в алфавитном порядке;
c) для заданного слова номера страниц, на которых оно встречается.*/
// Cлово 12 200
 
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include<fstream>
#include <stdio.h>
#include<stdlib.h>
#include<iomanip>
#define cls system("cls");
 
using namespace std;
int k,z=0;
ifstream wordsfile;
 
class Words{
    char word[10];
    int numb;
    int num_p;
        public:
            Words();
            void show();
            void sozd();
            int scanfile();
};
 
//ЗАПИСЬ ИНФОРМАЦИИ
void sozd()
{
    char word[10];
    int numb, num_p;
    
    ofstream wordsfile;
    wordsfile.open("data.txt", ios::app);
    
    cout <<"Word"<<endl;
    cin >> word;
    wordsfile << endl << word <<"  ";
 
    cout <<"Words on page 1-10"<<endl;//Номера страниц, на которых слово встречается (от 1 до 10)
    cin >> numb;
    wordsfile << numb <<"  ";
    
    cout <<"Numb of pages"<< endl;
    cin >> num_p;
    wordsfile << num_p;
 
    wordsfile.close();
}
 
//ВЫВОД
void vivod(Words list[]){
            int i;
            wordsfile.open("data.txt");
            cout << "Информация в файле: \n";
            z=list[0].scanfile();
            cout << "__________________" << endl;
            for(i=0;i<z;i++) //ПРОБЛЕМА С ОПРЕДЕЛЕНИЕМ КОЛИЧЕСТВА СТРОК В ФАЙЛЕ???
                list[i].show();
            cout << "__________________" << endl;
            z=0;
            wordsfile.close();
}
 
//>>>>>>>>>>>>>ГЛАВНАЯ<<<<<<<<<<<<<<<
int _tmain(int argc, _TCHAR* argv[]){   
    setlocale( LC_ALL, "Russian");
    
    while(1){
        Words *list;
    
        wordsfile.open("data.txt");
 
        list = new Words[50];
        Words();
        wordsfile.close();
        int i, n, nomber;
        cls;
 
        cout <<"Введите номер задания: ";       
        cout <<"\n\t1 - создать\n\t2 - вывести ";
        cout <<"\n: ";
        cin>>nomber;
 
        switch(nomber){
                case 1://ЗАПИСЬ
                    cls;
                    cout << "Введите количество: " << endl;
                    cin >> n;
                    for( i = 0; i < n; i++) 
                        sozd();
                    system("pause");
                    break;
                case 2://ВЫВОД
                    cls;
                    vivod(list);
                    system("pause");
                    break;
                case 3:
                    cls;
                    break;
                default:
                    cout << "Ошибка! Введите числа в диапазоне 0-7!"<<endl;
                    system("pause");
                    break; 
           }
    }
    return 0;
}
 
//КОНСТРУКТОР
Words::Words(){
    if (!wordsfile.eof()){
        z++;
        wordsfile>>word>>numb>>num_p;}
}
 
//------------------------- show -------------------------//
void Words::show(){
    cout << word << " " << numb << " "  << num_p << endl;}
 
int Words::scanfile(){
  return z;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 13:44     Вывод лишней информации из файла
Посмотрите здесь:

Происходит вывод лишней цифры в printf - C++
Задается значение k равное g, то на выходе получается: 103 3. При этом если поставить пробел в кавычка (здесь &quot;%d\n&quot;), то вторым...

Вывод информации из файла - C++
Здравствуйте. Проблема состоит в том, что информация из файла выводится некорректно. Помогите, пожалуйста, разобраться void LoadData()...

Вывод информации из файла - C++
Необходимо дополнить программу, что бы на экран она выводила то, что записано в файле.( она выводит непонятный символ)

Вывод информации из файла - C++
В файле записи в виде : 1 Кружка_большая_синяя 100 6 0 2 Кружка_большая_синяя 100 6 0 3 Кружка_маленькая_зеленая 765 4 0 нужно...

Чтение и вывод информации из файла - C++
Имеется текстовый файл zarplaty.txt. Необходимо вывести содержимое файла на экран в консоль.(объясните ещё как с русским языком обстоит...

Считывание из файла и вывод на экран (сохранение записанной в программе информации в файл) - C++
Вот сама задача: Анкета для опроса населения содержит две группы вопросов. Первая группа содержит сведения о респонденте: 1)возраст 2)пол...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.11.2013, 13:54     Вывод лишней информации из файла #2
Jekasso, не считай элементы, вместо этого читай до eof.

Добавлено через 1 минуту
Попробуй открыть в приплюснотом блокноте.
Jekasso
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 33
17.11.2013, 14:51  [ТС]     Вывод лишней информации из файла #3
taras atavin, так он вообще зацикливается.
MrGluck
Модератор
Эксперт CЭксперт С++
7178 / 4344 / 634
Регистрация: 29.11.2010
Сообщений: 11,823
17.11.2013, 15:51     Вывод лишней информации из файла #4
На ум приходит лишь тотальный рефакторинг.

Попробуйте в одной отдельной программе сначала записать в файл 10 чисел и потом считать их.
Далее попробуйте сначала записать слово и 10 чисел, а потом считать это все.
Далее организуйте меню с выбором: считать и записать.
Выложите результат на форум (желательно поэтапно).
Jekasso
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 33
17.11.2013, 17:31  [ТС]     Вывод лишней информации из файла #5
MrGluck, проблему решил, просто кое-что не в том месте было написано
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2013, 20:06     Вывод лишней информации из файла
Еще ссылки по теме:

Вывод информации в С++ - C++
Уважаемые коллеги, подскажите пожалуйста, как в С++ делать такой вывод как в Си. Например: k=M_PI; printf(&quot;%1.2d&quot;,k);

вывод на экран информации - C++
мне нужно сдать программу помогите плз 1) занести данные в файл 2) вывод на экран информации 3)удалять не нужные записи ...

ввод-вывод информации на с++ - C++
задание на картинке

Вывод информации о файле - C++
Добрый день форумчане. Кто подскажет,суть задачи - вывести информацию о файле. может быть есть какие-то функции которые в этом помогут?...

Графический вывод информации - C++
Мне надо написать программу, которая имитирует изменение температуры. Я не хочу изменять температуру просто &quot;переменная++&quot; , мне...

ввод-вывод информации - C++
начнем с задания...: Ввод текстовой строки с клавиатуры, при отображении пропускать гласные буквы, набранные на русском языке. ...


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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.11.2013, 20:06     Вывод лишней информации из файла #6
Цитата Сообщение от Jekasso Посмотреть сообщение
taras atavin, так он вообще зацикливается.
Не может этого быть.
Yandex
Объявления
17.11.2013, 20:06     Вывод лишней информации из файла
Ответ Создать тему
Опции темы

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