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

Поток как статическая компонента объкта - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При компиляции не может найти mpi_cxx http://www.cyberforum.ru/cpp-beginners/thread932690.html
День добрый, компилирую программку через Makefile и mpicxx (OpenMPI), но при компиляции выдает /usr/bin/ld: cannot find -lmpi_cxx В Makefile нигде библиотеку не линкую. Проверил mpicxx -showme. Все на месте. Посмотрел в папке OpenMPI - библиотека на месте. Сделал небольшую программку типа
C++ чтение из файла помогите, пожалуйста, найти ошибку. При вводе данных о двух работниках, запись их в файл происходит нормально, а от чтение выдает ошибку(( #include <fstream> // для файлового ввода/вывода #include <iostream> using namespace std; const int len=32; const int maxen=100; class name{ private: http://www.cyberforum.ru/cpp-beginners/thread932683.html
Почему не срабатывает инкремент? C++
В комментарии показал вывод программы. Все переменные почему равны 2 Получается инкремент не оказывает никакого влияния? int a=0, b=0, c=0; c = ++a = b = 2; std::cout << a << " " << b << " " << c; // 2 2 2
C++ Библиотеки на олимпиадах
Я собираюсь участвовать в олимпиаде по информатике(Украина). Я использую Microsoft Visual C++ 2010 Express. На олимпиадах, как я знаю часто используюn намного ранние версии этой программы. Скажите пожалуйста, есть ли запрещенные библиотеки на олимпиадах, такие как #include<getch>. Есть ли все библиотеки Microsoft Visual C++ 2010 Express например Microsoft Visual C++ 6.0 и более ранних. Мне это...
C++ Сравнение строк, чисел и т.д http://www.cyberforum.ru/cpp-beginners/thread932658.html
Вот, допустим, хочу я сделать проверку пароля :) Пишу: int main () { string login = "qwerty123"; cout << "Enter password: "; cin >> login; } И нужно сделать проверку пароля, с правильным паролем :) Пробовал так:
C++ Доделайте прогу (Змейка) Как на этой основе сделать полноценную змейку? #include <conio.h> #include <windows.h> HANDLE StdOutHandle; void putcxy(char c, COORD &coo) { SetConsoleCursorPosition(StdOutHandle, coo); _putch(c); static COORD coo0 = { 0, 0 }; SetConsoleCursorPosition(StdOutHandle, coo0); подробнее

Показать сообщение отдельно
ArkTaS
1 / 1 / 0
Регистрация: 01.07.2013
Сообщений: 127
03.08.2013, 00:22  [ТС]     Поток как статическая компонента объкта
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
статические поля класса должны быть объявлены ещё и глобально.
В этом дело? Я угадал?
Да, в этом

Добавлено через 6 минут
Цитата Сообщение от Kins Посмотреть сообщение
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
#include "stdafx.h"
#include <fstream>
#include <iostream>
 
using namespace std;
 
const int MAX=80;
 
//////////////////////////////////////////////////////////////////////
class Name
{
private:
    char name[MAX];
    char fname[MAX];
    unsigned long number;
    static fstream file;
public:
    Name():number(0)
    {file.open("DATA.dat", ios::in|ios::out|ios::app|ios::binary);}
    Name(char nm, char fn, unsigned long n): name(), fname(), number(n)
    {}
    void getName()
    {
        cout <<"Введите имя: "; cin >>name;
        cout <<"Фамилию: "; cin >>fname;
        cout <<"Номер работника: "; cin >>number;
    }
    void showName()
    {
        cout <<"\nИмя: " <<name;
        cout <<"\nФамилия: " <<fname;
        cout <<"\nНомер работника: " <<number;
    }
    static void writeName(Name N)
    {
        //file.open("DATA.dat", ios::in|ios::app|ios::binary);
        if(!file)
        {cerr <<"Невозможно открыть файл!";}
        file.write(reinterpret_cast<char*>(&N), sizeof(N));
        if(!file)
        {cerr <<"Невозможно записать файл!";}
        //file.close();
    }
    static void readName(Name N)
    {
        //file.open("DATA.dat", ios::out|ios::binary);
        if(!file)
        {cerr <<"Невозможно открыть файл!";}
        file.seekg(0);
        file.read(reinterpret_cast<char*>(&N), sizeof(N));
        //if(!file)
        //{cerr <<"Невозможно прочесть файл!";}
        while(!file.eof()){
            N.showName();
            file.read(reinterpret_cast<char*>(&N), sizeof(N));
        }
        file.close();       
    }
};
fstream Name::file;
////////////////////////////////////////////////////////////////////////
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "");
    Name N;
    char ch;
    do{
        N.getName();
        Name::writeName(N);
        cout <<"Еще раз (y/n)?";
        cin >>ch;
    }while(ch!='n');
    Name::readName(N);
    cout <<endl;
    system("pause");
    return 0;
}
Я решил писать в форматированном виде и вот в чем проблема, если убрать из главной функции main строчки employee::FileClose(); employee::FileOpen(); при записи после данных будет добавляться n-е количество символов заменить пробовал на seekg(0) но не помогло та же беда
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include <fstream> // для потоковых файловых функций
#include <iostream>
#include <istream>
#include <string>
#include <typeinfo> // для typeid()
using namespace std;
#include <process.h> // для exit()
 
const int MAX=10;
class employee
{
private:
    char name[MAX];
    char surname[MAX];
    char firstname[MAX];
    unsigned long numb; 
    static fstream file;
public:
     static void  FileOpen()
    {
        file.open("ex7.2.txt", ios::app| ios::in |ios::out);
    }
     static void  FileClose()
    {
        file.close();
    }
    static void FileReset()
    {
    }
    void getdata()
    {
        cout<<endl<<"Введите Имя ";    cin>>name;
        cout<<endl<<"Введите Фамилию ";  cin>>surname;
        cout<<endl<<"Введите Отчество ";     cin>>firstname;
        cout<<endl<<"Введите номер работника ";  cin>>numb;
    }
    void putdata()
    {
        cout<<endl<<"Имя "<<name;
        cout<<endl<<"Фамилия "<<surname;
        cout<<endl<<"Отчество "<<firstname;
        cout<<endl<<"Номер работника "<<numb;
 
    }
    void write()
    {
        if(!file)
        {
        cout << "\nНевозможно открыть ex6.txt";
        cout << "\nfile = " << file;
        cout << "\nКод ошибки = " << file.rdstate();
        cout << "\ngood() = " << file.good();
        cout << "\neof() = " << file.eof();
        cout << "\nfail() = " << file.fail();
        cout << "\nbad() = " << file.bad() << endl;
        }
        else
        cout << "\nФайл открыт без ошибок.";
        file<<numb<<' '<<name<<' '<<surname<<' '<<firstname<<' ';
    }
    void read()
    {
        char temp[101];
        char ch;
        if(!file)
        {
        cout << "\nНевозможно открыть ex6.txt";
        cout << "\nfile = " << file;
        cout << "\nКод ошибки = " << file.rdstate();
        cout << "\ngood() = " << file.good();
        cout << "\neof() = " << file.eof();
        cout << "\nfail() = " << file.fail();
        cout << "\nbad() = " << file.bad() << endl;
        }
        else
        cout << "\nФайл открыт без ошибок.";
        //--
        //cout<<infile.rdbuf();
        //--
        //infile.getline(temp,100);
        //cout<<temp
        //--
        /*
        while(!infile.eof())
        {
        infile>>ch;
        cout<<ch;
        }
        */
        //--
        cout<<endl;
        while(file)
        {
        file.get(ch);
        cout<<ch;
        }
    }
    void readSpec()
    {
        int com;
        cout<<endl<<"Введите номер искомого работника "; cin>>com;
        if(!file)
        {
        cout << "\nНевозможно открыть ex7.2.txt";
        cout << "\nfile = " << file;
        cout << "\nКод ошибки = " << file.rdstate();
        cout << "\ngood() = " << file.good();
        cout << "\neof() = " << file.eof();
        cout << "\nfail() = " << file.fail();
        cout << "\nbad() = " << file.bad() << endl;
        }
        else
        cout << "\nФайл открыт без ошибок.";
 
        while(file)
        {
            file>>numb>>name>>surname>>firstname;
            if(numb == com)
            {
            cout<<"Искомый номер найден";
            break;
            }
        }
        this->putdata();
    }
};
fstream employee::file;
 
void main()
{
   setlocale( LC_ALL,"Russian" );
   employee pers;
   employee::FileOpen();
 
   char answ;
   cout<<endl;
   cout<<"Хотите добавить нового работника ? ";
   cin>>answ;
   while(answ=='y')
   {
   pers.getdata();
   pers.write();
   cout<<"Хотите продолжыть добавление ? ";
   cin>>answ;
   }
   employee::FileClose();
   employee::FileOpen();
   pers.read();
//   pers.readSpec();
 
   cout<<endl;
   system("pause");
}
 
Текущее время: 12:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru