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

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

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

Вывод данных из текстового фаила - C++

30.09.2013, 15:30. Просмотров 321. Ответов 6
Метки нет (Все метки)

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


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
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string.h>
#include <iomanip>
using namespace std;
 
// Класс "Деталь"
 
class Detal{ public:
    char nazvanie[80];
    float ves;
    int kolichestvo;
    char mesto[20];
    };
 
// Класс "Стеллаж"
class Stellaj{ public:
    Detal detali[30];
    char nazvanie[20];
    char no_sklad[10];
 
 
int ReadF()
    { int i; char L[25];
    cout << "Vvedite puti k failu : ";
    gets(L);
    ifstream out_file(L, ios::out);
    if (out_file.fail()) cerr << "Error in opening stellaj.txt" << endl;
    else
    {if (!out_file.is_open()) cout << "Empty file";
    else{
     //Чтение названия stelaja
    cout << "STELAJ : ";
    if ((! out_file.eof()) && (! out_file.fail()))
    {
    out_file.getline(nazvanie, sizeof(nazvanie)) ;
    if (! out_file.fail()) cout << nazvanie << endl;}
 
        //Чтение No_склада
    cout << "SKLAD : ";
    if ((! out_file.eof()) && (! out_file.fail()))
    {
    out_file.getline(no_sklad, sizeof(no_sklad)) ;
    if (! out_file.fail()) cout << no_sklad << endl;}
 
 
ifstream input_file("L") ;
        //Чтение деталей в стелаже
    cout << endl << "----------------------------------------------------------------------------" << endl;
    cout << "No | Naimenovanie detali: | Ves: | Kol-vo :  |  Polka : " << endl;
    cout << "----------------------------------------------------------------------------" << endl;
    while ((! out_file.eof()) && (! out_file.fail()))
    {
    out_file >> detali[i].nazvanie;
    out_file >> detali[i].ves;
    out_file >> detali[i].kolichestvo;
    out_file >> detali[i].mesto;
 
    if (! out_file.fail())
    cout << setiosflags(ios::left) << setw(3) << i+1 << "| " << setw(20) << setiosflags(ios::left) << detali[i].nazvanie << " | " << setw(5) << setiosflags(ios::left) << detali[i].ves;
    cout << " | " << setw(5)<< setiosflags(ios::left) << detali[i].kolichestvo << " | " << setw(15) << setiosflags(ios::left) << detali[i].mesto << endl;
 
    i++;
    }
    cout << "----------------------------------------------------------------------------";
    if (! out_file.fail()) cout << endl << endl << "No sklada: " << no_sklad << endl;
    }
    out_file.close();
    }
    getch();
    return i;}
 
};
 
 
Stellaj *create(int n)
{   Stellaj *x;
    x=new Stellaj[n];
    return x;};
 
 
int main () {
    Stellaj g;
    int  A=100500, B=100;
    printf("PRIVET! EA TVOEA PROGA! EA HO4U RA-BO-TA-TI !! %d \n", A+B );
    g.ReadF();
    getchar();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2013, 15:30     Вывод данных из текстового фаила
Посмотрите здесь:

Вывод картинки из фаила - C++
Помогите пожалуйста вывести картинку из фаила. Использовать токлько окно BGI пишу на def-cpp какие функции для этого нужны?

матрица и ее ввод\вывод из фаила - C++
Доброго дня ув. форумчане. Пожалуйста помогите исправить программу, делал в Visual Studio 2006, вылазит множество ошибок, я никак не могу...

Вывод рандомных данных в классе из текстового файла - C++
Хочу вывести рандомные данные из текстового файла по одному. Но не знаю как. Подскажите. Код: #pragma once #include &lt;iostream&gt; ...

не могу компилировать программу и надо условие проверки данных фаила на простые числа и записать их - C++
надо условие проверки данных фаила на простые числа? #include &lt;fstream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt; ...

Вывод текстового сообщения на консоль - C++
Добрый день форумчане. Начал изучать плюсы и встретил два вида вывода сообщений: cout &lt;&lt; &quot;Hello, world!&quot;; std::cout &lt;&lt; &quot;Hello,...

Вывод строки из текстового файла - C++
Написать функцию, удовлетворяющую следующим требованиям: Прототип: int f(char*a, int n) Параметры: а - указатель исходного массива, n -...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
30.09.2013, 16:22     Вывод данных из текстового фаила #2
пример входного файла если можно плз. но на вскидку.
проблем в разделителях между данными. Если я правильно понял то используется символ |, однако для стандартного оператора считывания из потока разделителями являются пробел и конец строки
Более того если разделитель будет " | " (вместе с пробелами), и считывается
Цитата Сообщение от LeeZa Посмотреть сообщение
out_file >> detali[i].nazvanie;
out_file >> detali[i].ves;
out_file >> detali[i].kolichestvo;
out_file >> detali[i].mesto;
То в название пойдет название, в вес символ | в количество пойдет вес и соответствено в место кажется тоже просто символ |, т.к. именно пробелы разобьют строку на составляющие.
LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
30.09.2013, 21:03  [ТС]     Вывод данных из текстового фаила #3
В фаиле было это:
-------------

StellajZ
abc_sklad
Velosiped
3.4
2
polka7

-------------
названия стеллажа (StellajZ) и склада (abc_sklad) считались, в остальном проблемы.
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
30.09.2013, 21:40     Вывод данных из текстового фаила #4
Лишний код
C++
1
ifstream input_file("L") ;
У Вас случаем прога вообще не падает когда начинает считывать детали?
Если нет - везет .
Т.к. код реально рабочий но есть одно но
При считывании деталей вы используете переменную i. Однако вы ее нигде не инициализируете, полагаясь на то что изначально автоматом она будет проинициализированна, но по факту для переменной просто выделяется память, а вот какое там значение будет - не известно. Поэтому при объявлении допишите код чтобы она иницилизировалась. например так
C++
1
2
3
...
int ReadF()
{ int i(0);...
По идее должно все заработать.
Но есть еще одна неточность.
Прога упадет, если в файле будет прописано больше чем 30 деталей.
Поэтому в цикл считывания деталей целесообразно добавить проверку
C++
1
while ((! out_file.eof()) && (! out_file.fail())&&(i<30))
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.09.2013, 21:45     Вывод данных из текстового фаила #5
Это как?
C++
1
ifstream out_file(L, ios::out);
ifstream и ios::out?
LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
30.09.2013, 23:23  [ТС]     Вывод данных из текстового фаила #6
Благодарю за помощь!
Еще один (возможно, глупый) вопрос: можно ли как-то определить количество строк в фаиле ???
(т.к. программа выдает ошибку, как только заканчивает выполнять функцию. Думаю, нужно задать условие не до <30, а до < M, количество описанных деталеи в фаиле.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2013, 23:28     Вывод данных из текстового фаила
Еще ссылки по теме:

Вывод карты из текстового файла - C++
Доброго времени суток. При попытке создания несложного платформера я столкнулась со следующей проблемой. Имеется строковая карта в...

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

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

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


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

Или воспользуйтесь поиском по форуму:
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
30.09.2013, 23:28     Вывод данных из текстового фаила #7
на вскидку самый дурацкий способ прочитать их все и посчитать
но!

Цитата Сообщение от LeeZa Посмотреть сообщение
class Stellaj{ public: Detal detali[30];
Внутри самого класса у вас фиксированное количество деталей 30
поэтому и ставилось ограничение 30
Более того у вас масса ограничений на строчные данные.
отслеживайте в отладке что именно является причиной падения программы и исправляйте

Не забывайте что память не резиновая и сколько выделили под переменную столько приходится и использовать или выделять больше
Yandex
Объявления
30.09.2013, 23:28     Вывод данных из текстового фаила
Ответ Создать тему
Опции темы

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