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

Повторное открытие файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построение бинарных деревьев для сложных величин http://www.cyberforum.ru/cpp-beginners/thread1748881.html
Добрый день нужна помощь в написании программы для построение бинарных деревьев для слож. велечин. Я перелопатил интернет но что то толкового я не нашел. Нужно построить по формуле a+(b-c)*d^e+f. Я слаб в этой теме и не смог понять как правильно. Зарание спасибо.
C++ Добавить различные смещения от начала строки Имеется прога, представляющая работу текстового редактора на иерархическом списке. Требуется сделать так, чтобы при чтении из файла и при добавлении новой записи был отступ от начала строки в соответствии с принадлежностью тому или иному подпункту/пункту. Не знаю, как сделать лучше, прошу помочь с вариантами, заранее спасибо. //Stack.h - класс стека #pragma once #include "stdafx.h" ... http://www.cyberforum.ru/cpp-beginners/thread1748879.html
C++ MathGL библиотека
Добрый вечер. У кого есть библиотека MathGL, запустите данную программу, и скиньте сюда exe файл, я уже сколько пытаюсь ее подключить, но никак не получается, а отчет нужно сделать. #include <mgl2/qt .h> #include <mgl2/mgl .h> #include <iostream> using namespace std; int sample ( mglGraph * gr ) { gr->Subplot ( 2, 2, 0 ); gr->Title ( "График функции sin ( x ) " );
C++ Добавление элемента в словарь
Нужно добавить элемент в словарь. Элемент должен вводиться с клавиатуры пользователем
C++ Очередь с приоритетом при включении http://www.cyberforum.ru/cpp-beginners/thread1748836.html
есть программа реализации очереди. нужно переделать ее на очередь с приоритетом при включении, т.е. по сути надо переделать функцию add. помогите пожалуйста с идеями. #include "stdafx.h" #include <conio.h> #include <iostream> using namespace std; struct node { int d; node *p; };
C++ Почему возникает эта ошибка? Гляньте пожалуйсто что делаю не так? Задание такое: " после каждого отрицательного числа в векторе вставить число -20" Создаю вектор и заполняю числами //генерация случ. чисел srand(time(0)); // создаем вектор размер vector <int> myvec; int value = 0, min_value = -15, max_value = 15; подробнее

Показать сообщение отдельно
DimaAvatar
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 141
29.05.2016, 20:29  [ТС]     Повторное открытие файла
ммм. попробовал все это реализовать в своей программе, ну то что было изначально это укороченная выжимка... в ней работает, а в итоговой программе нет. увы (((
main.cpp
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
#include <iostream>
#include <cstdio>
 
#include <string>
#include <sstream>
#include <vector>
#include <iostream>
#include <algorithm>
 
#include "wire.h"
//#include "switches.h"
 
using namespace std;
void choise_menu();
void sklad();
 
int main (){
 
    setlocale(LC_ALL,"");
    for (int i=0;i<77;i++){
        cout<<"=";
    }
    cout<<"\n= Программа складского учета электротехнической продукции "
          "ООО Рога и копыта = ";
 
    cout<<"\n";
    for (int i=0;i<77;i++){
        cout<<"=";
    }
    cout<<"\n";
 
 
 
    choise_menu();
 
    cin.get();
    return 0;
}
 
void choise_menu(){
    cout<<"Выберете пункт меню программы:\n 1-посмотреть остатки товара\n 2-внести поступление товара\n 3-выдача товара со склада\n";
    string count;
    getline(std::cin, count);
    if (count == "1") sklad();  //имхо в сравнение с такой конструкцие switch отдыхает
    else if(count == "2") sklad();
    else if (count == "3") sklad();
    else {cout<<"проверьте правильность ввода пункта меню \n";choise_menu();}
 
}
 
void sklad(){
    wire obj1;
}
goods.h
goods.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef GOODS_H
#define GOODS_H
#include <iostream>
#include <fstream>
using namespace std;
class goods { // класс абстрактный т.к. содержит чистую виртальную функцию
    public:
    goods(){};
    ~goods(){};
    virtual void show () = 0;//чистая виртуальная функция
  //  virtual void add () = 0;//чистая виртуальная функция
};
#endif // GOODS_H
wire.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef WIRE_H
#define WIRE_H
#include "goods.h"
using namespace std;
class wire:public goods {
    private:
    int count;
    struct my_wire{
        string number;
        string product;
        string brand;
        float amount;
    }wire_store;
 
    my_wire *array_wire_store;
 
    public:
    wire();
    void pars_file(string&,int&);
    void add();
    void show();
};
#endif // WIRE_H
wire.cpp
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
#include "wire.h"
#include <cstring>
#include <fstream>
 
wire::wire(){
    int local_count = 0;
    count = -1;
    string str;
    ifstream file;
 
    file.open("/home/dima/QT_CPP/for_st/goods.txt");//здесь указать свой путь к файлу
    if (!file){
        cout<<"<База данных не обноруженна проверьте верность указания пути\n";
    } else {
        while (!file.eof()){
            getline(file,str);
            if (strstr(str.c_str(),"wire")){
                ++count;
            }
        }
    }
 
    file.close();
    file.clear();//без сброса флагов ошибок рабоать не будет
 
    my_wire *array_wire_store = new my_wire[count];// выделяем память под необходимое кол-во товарных позиций
 
    file.open("/home/dima/QT_CPP/for_st/goods.txt");//здесь указать свой путь к файлу
    if (!file){
        cout<<"<База данных не обноруженна проверьте верность указания пути\n";
    } else {
        cout<<"the begin";//маркер
        while (!file.eof()){
            getline(file,str);
            if (strstr(str.c_str(),"wire")){
                pars_file(str,local_count);
            }
        }
 
    }
    file.close();
 
}
 
void wire :: pars_file(string&str,int& local_count){
    string temp_str = str;
    if (strstr(str.c_str(),"wire")){
        array_wire_store[local_count].number = temp_str.substr(0,temp_str.find(';')).c_str();
        array_wire_store[local_count].product = temp_str.substr(0,temp_str.find(';')).c_str();
        array_wire_store[local_count++].brand = temp_str.substr(0,temp_str.find(';')).c_str();
    }
    cout<<"the end";//маркер
 
}
 
 
void wire::show(){
 
    for (unsigned int i = 0; i<(sizeof(array_wire_store)/sizeof(my_wire));++i){
        cout<<array_wire_store[i].number<<array_wire_store[i].product<<"\n";
    }
 
}
проблема с wire.cpp не заходит сволочь во второе открытие файла. гляньте если не сложно.
ubuntu 14 g++
Вложения
Тип файла: txt goods.txt (152 байт, 0 просмотров)
 
Текущее время: 10:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru