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

Как записать строку из консоли в переменную - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Stonerider
 Аватар для Stonerider
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 17
06.06.2013, 19:50     Как записать строку из консоли в переменную #1
Всем привет, не знаю, как назвать то, что мне нужно, суть состоит в том:
есть у меня код, который переводит из 10-чной системы в другие системы счисления
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
#include <iostream>
#include <stdlib.h>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <string.h>
 
using namespace std;
char int_symbol(int in)
{
    char out[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    return out[in];
}
 
void ten_base(int in, int base)
{
    if (in<base)
        {
                cout<<int_symbol(in);
        return ;
    }
    ten_base(in/base,base);
    cout<< int_symbol(in%base);
}
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int in,base;
    cout<<"Введите число"<<endl;
    cin >> in;
    checkin(in);
    cout<<"Введите систему исчисления"<<endl;
    cin >> base;
    checkin(base);
    cout<<in<<" в "<<base<<"-чной системе будет "<<endl;
    ten_base(in,base);
    return 0;
}
так вот, получается, что данная прога выводит число, всё устраивает, но в дальнейшем мне нужно это число записать в файл, но я никак не пойму, как забрать его из консоли, или же придать его значение переменной в функции ten_base...
пример: вводим 25, система- двоичная, выводит 11001, так вот, мне нужно вот это 11001 как-то придать любой переменной(хоть стринг)
всё, больше не знаю, как ещё объяснить что я хочу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,397
06.06.2013, 19:53     Как записать строку из консоли в переменную #2
в чем проблема сделать так:
C++
1
2
3
4
5
6
void foo(const std::string &s)
{
    // ...
}
string str = "11001";
foo(str);
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.06.2013, 20:02     Как записать строку из консоли в переменную #3
Можно так:
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
#include <iostream>
#include <stdlib.h>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <string>
using namespace std;
 
string str;
 
char int_symbol(int in)
{
    char out[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    return out[in];
}
 
void ten_base(int in, int base)
{
    if (in<base)
        {
                cout<<int_symbol(in);
        return ;
    }
    ten_base(in/base, base);
    //cout<< int_symbol(in%base);
    str += int_symbol(in%base);
}
 
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int in, base;
    cout<<"Введите число"<<endl;
    cin >> in;
    checkin(in);
    cout<<"Введите систему исчисления"<<endl;
    cin >> base;
    checkin(base);
    cout<<in<<" в "<<base<<"-чной системе будет "<<endl;
    ten_base(in, base);
    
    cout << str << endl;
    
    system("pause");
    return 0;
}
Stonerider
 Аватар для Stonerider
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 17
06.06.2013, 20:09  [ТС]     Как записать строку из консоли в переменную #4
MrGluck,
я не понял...
оно выводит число, и мне это число нужно вбить в переменную(число всё время ж разное)

Добавлено через 7 минут
alsav22,
спасибо большое, только я не понял, str это переменная, которую не нужно объявлять и она сохраняет своё значение в любой функции?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,397
06.06.2013, 20:13     Как записать строку из консоли в переменную #5
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
#include <iostream>
#include <string>
 
char int_symbol(int in)
{
    char out[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    return out[in];
}
 
void ten_base(std::string &s, int in, int base)
{
    if (in < base)
    {
        s += int_symbol(in);
        return;
    }
    ten_base(s, in / base, base);
    s += int_symbol(in % base);
}
 
int main()
{
    std::string res;
    ten_base(res, 8, 2);
    std::cout << res << std::endl;
}
Stonerider
 Аватар для Stonerider
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 17
06.06.2013, 20:14  [ТС]     Как записать строку из консоли в переменную #6
всё, вроде-бы понял) спасибо всем)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.06.2013, 20:19     Как записать строку из консоли в переменную #7
Цитата Сообщение от Stonerider Посмотреть сообщение
только я не понял, str это переменная, которую не нужно объявлять и она сохраняет своё значение в любой функции?
Объявлена как глобальная в 10 строке. Видна везде, т.к. глобальная.

Добавлено через 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <stdlib.h>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <string>
using namespace std;
 
 
char int_symbol(int in)
{
    char out[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    return out[in];
}
 
void ten_base(int in, int base, string &str)
{
    if (in<base)
        {
                cout<<int_symbol(in);
        return ;
    }
    ten_base(in/base, base, str);
    //cout<< int_symbol(in%base);
    str += int_symbol(in%base);
}
 
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int in, base;
    cout<<"Введите число"<<endl;
    cin >> in;
    checkin(in);
    cout<<"Введите систему исчисления"<<endl;
    cin >> base;
    checkin(base);
    cout<<in<<" в "<<base<<"-чной системе будет "<<endl;
    
    string str;
    
    ten_base(in, base, str);
    
    cout << str << endl;
    
    system("pause");
    return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,397
06.06.2013, 20:40     Как записать строку из консоли в переменную #8
alsav22,
Цитата Сообщение от alsav22 Посмотреть сообщение
if (in<base){
* * * * * * * * cout<<int_symbol(in);
[/quote]
не добавляет к строке, а лишь выводит символ
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.06.2013, 21:22     Как записать строку из консоли в переменную #9
Stonerider, в топку мои предыдущие коды. Всё неправильно.

Добавлено через 26 минут
Вот так работает:
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
#include <iostream>
#include <stdlib.h>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <string>
using namespace std;
 
 
char int_symbol(int in)
{
    char out[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    return out[in];
}
 
void ten_base(int in, int base, string &str)
{
    char ch;
         if (in < base)
        {
             ch = int_symbol(in);
             str += ch;
        return ;
    }
    ten_base(in / base, base, str);
    ch = int_symbol(in % base);
    str += ch;
}
 
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int in, base;
    cout<<"Введите число"<<endl;
    cin >> in;
    checkin(in);
    cout<<"Введите систему исчисления"<<endl;
    cin >> base;
    checkin(base);
    cout<<in<<" в "<<base<<"-чной системе будет "<<endl;
    
    string str;
    
    ten_base(in, base, str);
    
    cout << str << endl;
    
    system("pause");
    return 0;
}
Stonerider
 Аватар для Stonerider
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 17
06.06.2013, 21:30  [ТС]     Как записать строку из консоли в переменную #10
alsav22, Спасибо, но я уже доделал 1-ый вариант и использую его)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.06.2013, 21:33     Как записать строку из консоли в переменную #11
Ну и хорошо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 21:35     Как записать строку из консоли в переменную
Еще ссылки по теме:

Как записать в переменную буквы, символы, цыфры? C++
Как записать в переменную значения других переменных? C++
Как считать строку с консоли? C++

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

Или воспользуйтесь поиском по форуму:
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
06.06.2013, 21:35     Как записать строку из консоли в переменную #12
а я вот тут заморочился и написал то , что ТС спрашивал изначально (нет понятное дело , что так не делается как он собирался это осуществить , но так ради интереса). Итак выводим в консоль , ПРОИЗВОЛЬНО что нам надо (в моём случае это 2 надписи) , при помощи функции считываем в переменную char очищаем экран , и затем на экран выводим эти же 2 надписи только уже с переменной в которую они считались.
Вложения
Тип файла: rar Project1.rar (106.7 Кб, 4 просмотров)
Yandex
Объявления
06.06.2013, 21:35     Как записать строку из консоли в переменную
Ответ Создать тему
Опции темы

Текущее время: 10:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru