С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43

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

30.09.2013, 15:30. Показов 679. Ответов 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();
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.09.2013, 15:30
Ответы с готовыми решениями:

Пожалуйста помогите,нарисовать линию а данные брать из текстового фаила.
я сделал запись данных в файл и чтение их,остался график... unit Unit1; interface uses Windows, Messages, SysUtils,...

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

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

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

StellajZ
abc_sklad
Velosiped
3.4
2
polka7

-------------
названия стеллажа (StellajZ) и склада (abc_sklad) считались, в остальном проблемы.
0
 Аватар для HedgehogLu
147 / 82 / 10
Регистрация: 04.09.2013
Сообщений: 261
30.09.2013, 21:40
Лишний код
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))
1
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
30.09.2013, 21:45
Это как?
C++
1
ifstream out_file(L, ios::out);
ifstream и ios::out?
0
 Аватар для LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
30.09.2013, 23:23  [ТС]
Благодарю за помощь!
Еще один (возможно, глупый) вопрос: можно ли как-то определить количество строк в фаиле ???
(т.к. программа выдает ошибку, как только заканчивает выполнять функцию. Думаю, нужно задать условие не до <30, а до < M, количество описанных деталеи в фаиле.
0
 Аватар для HedgehogLu
147 / 82 / 10
Регистрация: 04.09.2013
Сообщений: 261
30.09.2013, 23:28
на вскидку самый дурацкий способ прочитать их все и посчитать
но!

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

Не забывайте что память не резиновая и сколько выделили под переменную столько приходится и использовать или выделять больше
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.09.2013, 23:28
Помогаю со студенческими работами здесь

Вывод данных из текстового файла в datagridview
Доброго времени суток! Помогите разобраться с проблемой, пожалуйста.:cry: Входные данные(скрин 1, снизу вверх) То, что...

Вывод данных на печать из текстового поля
Всеv доброго времени суток.... У меня есть текстовое поле в WPF сделал его мультилайнт через свойсва &lt;TextBox Name...

Вывод таблицы из данных текстового файла
Есть почти готовая программа: Program Table; Const size = 5; Type Data = Record name, surname, otch : string; ...

Вывод данных из текстового файла в Richtextbox
Здравствуйте! У меня есть форма на которой расположено 2 кнопки,по нажатию на первую кнопку открывается форма,на которой я ввожу данные...

Вывод данных из текстового файла в StringGrid
Здравствуйте, помогите новичку кодом) Имеется таблица StringGrid(фото прикреплено ниже) нужно начиная со второй строки в таблицу, также...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru