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

Преобразовать string в int .? - C++

Восстановить пароль Регистрация
 
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
04.11.2013, 18:20     Преобразовать string в int .? #1
строки 66 и 71 соответственно, считываю из файла в string, как преобразовать? кроме static_cast не знаю
И по прежнему не понимаю как выровнять выводимую информацию относительно друг друга, через setw() и right не получается...
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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
#include <iomanip>
 
using namespace std;
struct bstr
    {
    int year;
    int number;
    };
int main()
{
    int sum=0;
    int counter=0;
    int s,cntr;
    cntr=0;
    int nb, year;
    string namefile;
    cout<<"Please enter created file name:  ";
    cin>>namefile;
    namefile.append(".txt\0");// - присваивает строке s значение строки str. Аналогично запис // nb - NumberBuild - кол-во зданий , year - год улицы
    cout<<"Created file:    "<<namefile;
    ofstream ofs(namefile.c_str()); //создаем сам файл т.к. fstream его не создаст
    ofs.close();
    fstream f;
    f.open(namefile.c_str());//создание потока
    cout<<"\nInput the number of strings:   ";
    cin>>s;//количество строк в файле
    string str;
    for(int i=0;i<s;i++)//считывание строк с консоли и перевод в поток
    {
    cout<<"String number "<<i+1<<endl;
    cout<<"please enter street name:    ";
    cin>>str;
    f<<str<<"   ";
    cout<<"please enter number builds:  ";
    cin>>nb;
    cout<<"please enter year of builds: ";
    f<<right<<nb<<"   ";
    cin>>year;
    f<<right<<year<<"\n";
    cntr++;
    }
    f.clear();
    f.seekg(0);
    int counterIndexArray=0;
    int *cntrNumber=new int[s];
    int *cntYear=new int[s];
        while(!f.eof())
        {
 
        f>>str;
        if (f.eof())
        break;
            switch (counter)
            {
            case 0:
            cout<<right<<"\nName of street:"<<str<<endl;
            counterIndexArray++;
            break;
 
            case 1:
            cout<<right<<"number:"<<str<<endl;
            cntrNumber[counterIndexArray]=str;
            break;
 
            case 2:
            cout<<right<<"year:"<<right<<str<<endl;
            cntYear[counterIndexArray]=str;
            break;
            }
        counter++;
            if (counter==3)
            counter=0;
        }
    int valYear;
    cout<<"\nPlease enter year:";
    cin>>valYear;
    for (int i=0;i<s;i++)
    {
    if (cntrYear[counterIndexArray]==valYear)
    sum+=cntrNumber[counterIndexArray];
    }
    cout<<"sum="<<sum;
    f.close();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
04.11.2013, 18:29     Преобразовать string в int .? #2
C++
1
2
3
#include <cstdlib>
 
int atoi (const char * str);
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
04.11.2013, 18:32  [ТС]     Преобразовать string в int .? #3
нашёл сам. потом вспомнил что читал это когда-то))
atoi( str.c_str() )
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
04.11.2013, 18:38     Преобразовать string в int .? #4
C++
1
cout << setw(a) << value_1 << setw(b) << value_2;
где a количество символов для value_1 и b - для value_2
ТОрчОК
Заблокирован
04.11.2013, 18:53     Преобразовать string в int .? #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
#include <iostream> 
#include <string>
using namespace std; 
 
void f (std::string str)
{ 
    const char* ch = str.c_str();
    int i = 0;
    while(*ch != '\0')
    {
        i += *ch - '0';
        i = i * 10;
        ch++;
    }
    i = i/10;
    std::cout << i;
}
 
int main () 
{ 
    f("666");
    system("pause");
    return 0; 
}
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
04.11.2013, 18:54     Преобразовать string в int .? #6
strtol и т.п.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
04.11.2013, 18:57     Преобразовать string в int .? #7
C++
1
2
3
4
5
6
7
8
#include <sstream>
 
int StrToInt ( const std :: string & str ) {
    int result = 0 ;
    std :: stringstream ss ( str ) ;
    ss >> result ;
    return result ;
}
Hrobak
288 / 168 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
04.11.2013, 20:03     Преобразовать string в int .? #8
Ну если в C++11, то std::stoi (const std::string &) есть.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
04.11.2013, 20:28     Преобразовать string в int .? #9
Croessmah, а если str окажется не числом?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 22:20     Преобразовать string в int .?
Еще ссылки по теме:

C++ Преобразовать int в const int для установки размера массива
Как преобразовать один элемент String в Int C++
Стандартно преобразовать int в соответствующий string C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
04.11.2013, 22:20     Преобразовать string в int .? #10
Цитата Сообщение от rangerx Посмотреть сообщение
Croessmah, а если str окажется не числом?
Вернет 0. А не нужно пихать не проверенные данные
Yandex
Объявления
04.11.2013, 22:20     Преобразовать string в int .?
Ответ Создать тему
Опции темы

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