7 / 6 / 1
Регистрация: 29.10.2016
Сообщений: 175

Почему в одном месте работает, а в другом нет?

17.01.2020, 11:27. Показов 2462. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Почему один код работает, а в другом сыпятся ошибки?
Как бы смысл кода по сути один и тот же, но что-то мешает в нерабочем проекте.

Рабочий:
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
#include <iostream>
#include <random>
#include <vector>
 
using namespace std;
template <typename T>
class MyClass
{
public:
    MyClass() {};
    void PushBack(T value) {
        array.push_back(value);
    }
    T GetValue(int i) {
        return array[i];
    }
private:
    vector <T> array;
};
 
int main()
{
    vector<MyClass<uint32_t>> A ;
    MyClass<uint32_t> B;
    A.push_back(B);
    A[0].PushBack(1024);
    cout << A[0].GetValue(0) << "\n";
    system("pause");
    return 0;
}
Не рабочий:
main.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
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
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
#include <random>
 
#include "Symbol.h"
#include "Random.h"
 
using namespace std;
 
 
template <typename T>
int GenerateTheAlphabet(ifstream &fin, vector<Symbol<T>> &alph)                     //Генерация алфавита
{
    Symbol<T> oneSymbol;
    char ch = NULL;
    bool checkRedo = false;
 
    while (fin.read((char*)&ch, sizeof(char)))                                      //Пока читаем
    {
        checkRedo = true;
 
        if (!alph.empty()) 
        {
            for (size_t i = 0; i < alph.size(); i++)
            {
                if (alph[i].Get_symbol() == ch) { checkRedo = false; break; }       //Проверка, есть ли этот символ в алфавите
            }
        }                   
        if (checkRedo == true) {                                                    //Если проверка пройдена, переписываем считанный из файла набор битов в контейнер под char
            oneSymbol.Set_symbol(ch);
            oneSymbol.Set_abyssAttribute(false);                                    //Атрибут ЧЯ - false
            alph.push_back(oneSymbol);                                              //Добавляем в алфавит
        }
    }
    
    return 0;
}
 
template <typename T>
int RandomShuffleVector(vector <Symbol <T>>& alph)  //Перемешать алфавит
{
    random_device rd;                               
    mt19937 g(rd());                                
    shuffle(alph.begin(), alph.end(), g);           //Перемешивание
    return 0;
}
 
template <typename T>
int WriteToOKFile(ofstream& fout, vector <Symbol <T>> alph) 
{
    for (size_t i = 0; i < alph.size(); i++)
    {
        char buf = alph[i].Get_symbol();
        fout.write((char*)& buf, sizeof(char));
    }
    return 0;
}
 
int main()
{
    ofstream fout;
    ifstream fin;
    string filepathOT;//Open Text
    string filepathOK;//Open Key
 
    do 
    {
        system("cls");
 
        cout << "For exit type: 'E'\nEnter filepath for target file:\n";
        cin >> filepathOT;
        
        if (filepathOT == "E")                                                  
        {
            exit(EXIT_SUCCESS);
        }
 
        fin.open(filepathOT, ios_base::in | ios_base::binary);                      
 
        if (!fin.is_open())                                                     
        { 
            cerr << "Can`t open " << filepathOT << " file for output\n";
            system("pause");
        }   
    } while (!fin.is_open());
 
    //auto filesizeOT = GetTheFileSize(filepathOT);
 
    system("cls");
 
    vector<Symbol<uint32_t>> alphabet;                                                      //Главный вектор
 
    cout << "File " << filepathOT << " has been opened successfully\n";
 
    GenerateTheAlphabet(fin, alphabet);                     
    RandomShuffleVector(alphabet);                      
 
    filepathOK += filepathOT;                       
    auto pointpos = filepathOK.find_last_of(".");;
    filepathOK.insert(pointpos, "openkey");
 
    fout.open(filepathOK, ios_base::out | ios_base::binary | ios_base::trunc);      
 
    if (!fout.is_open())                                    
    {
        cerr << "Can`t create " << filepathOK << " file for output\n";
        system("pause");
        return -1;
    }
    else {
        cout << "File " << filepathOK << " has been created successfully\n";
        WriteToOKFile(fout, alphabet);
    }
 
    return 0;
}
Symbol.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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once
#include <vector>
 
template <typename T>
class Symbol
{
private:
    bool abyssAttribute = false;                        
    T minLimit = numeric_limits<T>::min();                          
    T maxLimit = numeric_limits<T>::min();                          
    char symbol = 0;                                                
    vector <T> storage; //Из-за этой строки ошибка, если её убрать - все заработает                                                
 
public:
    Symbol() {};
    Symbol(bool abyss, T min, T max, char symb)
    {
        abyssAttribute = abyss;
        minLimit = min;
        maxLimit = max;
        symbol = symb;
    };
 
    //Set-functions
    void Set_abyssAttribute(bool value) { abyssAttribute = value; }
    void Set_minLimit(T value) { minLimit = value; }
    void Set_maxLimit(T value) { maxLimit = value; }
    void Set_symbol(char value) { symbol = value; }
 
    //Get-functions
    bool Get_abyssAttribute() { return abyssAttribute; }
    T Get_minLimit() { return minLimit; };
    T Get_maxLimit() { return maxLimit; };
    char Get_symbol() { return symbol; }
 
    //Switch-functions
    void Switch_abyssAttribute();
 
};
C++
1
Ошибки:
Кликните здесь для просмотра всего текста

Ошибка C2143 синтаксическая ошибка: отсутствие ";" перед "<" Symbol.h 12
Ошибка C2143 синтаксическая ошибка: отсутствие ";" перед "<" Symbol.h 12
Ошибка C4430 отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию Symbol.h 12
Ошибка C2238 непредвиденные лексемы перед ";" Symbol.h 12
Ошибка C4430 отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию Symbol.h 12
Ошибка C2238 непредвиденные лексемы перед ";" Symbol.h 12
Ошибка C2143 синтаксическая ошибка: отсутствие ";" перед "<" Symbol.h 12
Ошибка C4430 отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию Symbol.h 12
Ошибка C2238 непредвиденные лексемы перед ";" Symbol.h 12
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.01.2020, 11:27
Ответы с готовыми решениями:

Почему на одном компьютере работает , а на другом - нет?
Почему одна и таже программа, написанная на C++ в CodeBloks на одном компьютере, не работает на другом компьютере. Я д/з по...

Феномен в одном месте в другом нет
В комментариях все написано запустите прогу и увидете. Почему так? И как исправить? #include &lt;iostream&gt; using namespace std; ...

Код в одном проекте работает, в другом нет
Добрый вечер.у меня возникла такая проблема:я писала функцию по удалению оценок в одном проекте (пишу на Visual Studio 2012),а вся...

4
 Аватар для Reavolt
139 / 67 / 46
Регистрация: 15.10.2015
Сообщений: 308
17.01.2020, 11:38
Лучший ответ Сообщение было отмечено Battary как решение

Решение

Battary,
C++
1
std::vector<T> storage; и что забыла функция main в .h файле.
1
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
17.01.2020, 11:41
<не актуально>
0
7 / 6 / 1
Регистрация: 29.10.2016
Сообщений: 175
17.01.2020, 11:53  [ТС]
Цитата Сообщение от Reavolt Посмотреть сообщение
Battary,
C++
1
std::vector<T> storage; и что забыла функция main в .h файле.
Очевидно же, что это cpp-ик, но да ладно. Спасибо за помощь
0
 Аватар для eva2326
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,517
17.01.2020, 12:35
Цитата Сообщение от Battary Посмотреть сообщение
Рабочий:
Цитата Сообщение от Battary Посмотреть сообщение
using namespace std;
template <typename T>
class MyClass
Цитата Сообщение от Battary Посмотреть сообщение
Не рабочий:
Отсутствует:
Цитата Сообщение от Battary Посмотреть сообщение
using namespace std;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.01.2020, 12:35
Помогаю со студенческими работами здесь

Программа со строками, в одном виде работает, в другом нет
Написал программу #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(int argc, char*...

При одном кострукторе вызывется деструктор, при другом нет - почему?
Есть класс дерево, в нём вложен класс лист. В подклассе лист есть два конструктора: Node(int key, Node NIL) и Node() #include...

Почему в одном случае y=0, в другом - y=1 ?
#include &lt;iostream&gt; using namespace std; int main(int argc, char** argv) { int y; cout &lt;&lt; y; return 0; } Я так понимаю,...

Сформировать DropDownList, одинаковый код в одном месте работает в другом нет
Есть следующие модели public class Fpsu { public int id { get; set; } public string SN { get; set; } ...

Datagridview! Почему в одном варианте работает, а в другом нет?!
надо было считать массив из *.ТХТ в датагридвью. сначала сделал так заполнение: for (int i = 0; i &lt; SetAppHaracters.GetLength(0);...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru