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

Как указать имя файла в fstream через string и функцию? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как правильно подключить каталоги http://www.cyberforum.ru/cpp-beginners/thread1638302.html
Всем привет! Не могу понять в чем я неправильно подключаю каталоги библиотек! решил написать драйвер для мышки и немного попрактиковаться! но у меня не видит необходимые элементы,странно хотя я подключил их... Заранее благодарен!
C++ Нюансы синтаксиса: оператор & после переменной Здравствуйте, разбираю исходник одной программы, не могу понять, что означает оператор & после имени переменной (в случае с указателем он ставится перед) game::Settings& options = game::Settings::instance(); Это переопределение или нет? http://www.cyberforum.ru/cpp-beginners/thread1638266.html
Задать массив из 20 целочисленных элементов и обнулить те числа которые повторяются более 2х раз C++
Задать массив из 20 целочисленных элементов и обнулить те числа которые повторяются более 2х раз. Я не понял как это делается, помогите плиз
C++ Нужно сдвинуть число на 4 разряда влево и вправо
Нужно сдвинуть 1000 на 4 разряда влево и вправо. Тема указатели. Препод говорил, что число нужно переводить в двоичную систему, что-то с ним делать. Не понятно, в общем. А как программу по этому написать... Хз вообще что да как. Помогите, пожалуйста! Добавлено через 4 часа 55 минут Есть предположение, что это делается вот так: #include <iostream> #include <conio.h> using namespace...
C++ Вычислить произведение положительных элементов заданной строки матрицы (написать код с использованием goto) http://www.cyberforum.ru/cpp-beginners/thread1638198.html
Программа вычисления произведения положительных элементов строки матрицы. При обнаружении 0 выводится сообщение "Обнаружен 0!" Ее каким-то образом нужно переделать в goto. Понятия не имею, как это сделать... #include <iostream> #include <conio.h> using namespace std;
C++ Ввод и вывод массива с текстовым файлом К сожалению эта идея пришла мне в голову в 4:15 ночи и я сам уже не сооброжаю так что прошу помощи у вас Мне нужно записать уже имеющийся массив в текстовый файл (таким образом у меня получается редактируемый массив),а потом его вывести(то-есть сначала создать файл(с массивом который в программе) а потом чтоб она сама без прописного в коде проги (массива) вводил этот массив из файла и... подробнее

Показать сообщение отдельно
vitaliy2034
1 / 1 / 1
Регистрация: 14.01.2016
Сообщений: 25
Завершенные тесты: 1
14.01.2016, 11:11     Как указать имя файла в fstream через string и функцию?
Я написал програму которая переводит системы исчесления(2-36).Програма роботает на ура ,но я хотел сделать историю, а поскольку хотелось чтобы имя истории было равносильно текущему времени для этого я написал функцию my_time_for_his (я знаю можно было проще ,но на даный момент итересует пример с функцией) и файл истрии вопще не создаётся. НО компилятор молчит не говорит что есть ошибки.В чём проблема? Помогите!Вот код
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
#include<iostream>
#include<fstream>
#include<conio.h>
#include<string>
#include<time.h>
using namespace std;
string rax(long long digit,short d_sis );
string my_time_for_his();
string file_name = my_time_for_his() + "d.txt";//здесь в чёмто проблема но в чём
ofstream outt (file_name.c_str());
int main() {
    setlocale(LC_ALL, "Ukrainian");
    cout << file_name.c_str();
    short digit_s[34] = { 0 };
    system("color 2b");
    long long inp;
    outt << "\t\t\t\tПеревод в системи числення(2 - 36)";
    while (true)
    {
        cout << "\t\t\t\tПеревод в системи числення(2-36)\n\n\n\nВведiть число:\n";
        outt << "\n\n\n\nВведiть число:\n";
        for (;;) {
            if (!(cin >> inp)) {
                cout << "Спробуйте ще раз:\n";
                cin.clear();
                while (cin.get() != '\n');
            }
            else
            {
                outt << inp<<endl;
                break;
            }
        }
        for (short i = 2; i <= 36; i++)
        {
 
            outt << "Число " << inp << " в " << i << "-iй системi числення є: " << rax(inp, i) << endl;
            cout << "Число " << inp << " в " << i << "-iй системi числення є: " << rax(inp, i) << endl;
        }
 
        char choice2;
        cout << "Продовжити Так-у або Нi - n\n";
        if ((cin >> choice2) && choice2 == 'y')
        {
            system("cls");
        }
        else
        {
            cout << "Допобачення";
            _getch();
            exit(0);
        }
    }
    _getch();
    return 0;
}
string my_time_for_his(){
    string result;
    unsigned short Ar_date[3] = { 1970,1,1 };
    unsigned long long sekyndu = time(0);
    unsigned short A_time[2] = { 0,0 };
    const unsigned int w_const[3] = { 31536000,31622400,86400 };
    bool prov=false;
    while (true)
    {
        if (Ar_date[0]%4==0)
        {
            sekyndu -= w_const[1];
            Ar_date[0]++;
            if (sekyndu < w_const[1])
            {
                break;
            }
            continue;
        }
        if(Ar_date[0] % 4 != 0)
        {
            sekyndu -= w_const[0];
            Ar_date[0]++;
            if (sekyndu<w_const[0])
            {
                break;
            }
        }
    }
    if (Ar_date[0] % 4 == 0) 
        prov = true;
    unsigned short mount[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
    if (prov == true)
        mount[1] = 29;
    for (short i = 0; i < 12; i++)
    {
        
        if (sekyndu >= mount[i] * w_const[2]) {
            sekyndu -= mount[i] * w_const[2];
            Ar_date[1]++;
        }
        else
        {
            while (sekyndu>=w_const[2])
            {
                sekyndu -= w_const[2];
                Ar_date[2]+=1;
            }
 
            break;
        }
    }
    while (sekyndu>=3600)
    {
        sekyndu -= 3600;
        A_time[0]++;
    }
    while (sekyndu>=60)
    {
        sekyndu -= 60;
        A_time[1]++;
    }
    
    result = to_string(Ar_date[2])+"_"+ to_string(Ar_date[1]) + "_"+to_string(Ar_date[0]) + "/"+ to_string(A_time[0]+=2) + ":"+to_string(A_time[1]) + ":"+ to_string(sekyndu) + "|";
    return result;
}
string rax(long long digit,short d_sis) {
    string result2;
    string temp;
    string all_d[37] = { "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
    while (digit!=0)
    {
        temp += all_d[digit%d_sis];
        digit -= digit%d_sis;
        digit /= d_sis;
    }
    for (size_t i = 1; i <= temp.length(); i++)
    {
        result2 += temp[temp.length() - i];
    }
    return result2;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru