2016-03-12 9 views
1

Я просто не могу преобразовать разные типы данных в C++, я знаю, что C++ - это сильный язык, поэтому I здесь используется static_cast, но перед проблемой возникает ошибка сообщения являютсяпреобразование строки в int и int в строку с использованием static_cast

недействителен static_cast от типа 'станд :: строка {ака станд :: basic_string}' к типу 'Int'
недопустимое преобразование из 'Int' в 'сопзЬ символ *' [-fpermissive]

#include <vector> 
#include <iostream> 
using namespace std; 

int main() 
{ 

    string time; 
    string t2; 
    cin >> time; 
    int hrs; 

    for(int i=0;i!=':';i++) 
     { 
      t2[i]=time[i]; 
     } 

    hrs=static_cast<int>(t2); 
    hrs=hrs+12; 

    t2=static_cast<string>(hrs); 

    for(int i=0;i!=':';i++) 
     { 
      time[i]=t2[i]; 
     } 


    cout<<time; 


    return 0; 
} 

ответ

0

Создание строки из int (и наоборот) не является литой.

Литой принимает объект одного типа и использует его, немодифицированный, как если бы это был другой тип.

Строка - это указатель на сложную структуру, включающую по крайней мере массив символов.

Int - это структура уровня процессора, которая непосредственно представляет числовое значение.

int может быть выражен как строка для отображения целей, но представление требует значительных вычислений. На данной платформе все int используют точно такой же объем памяти (например, 64 бита). Однако представления строк могут значительно различаться, и для любого заданного значения int существует несколько общих строковых представлений.

Zero, как int на 64-битной платформе, состоит из 64 бит при низком напряжении. В качестве строки он может быть представлен одним байтом «0» (высокое напряжение на битах 4 и 5, низкое напряжение на всех остальных битах), текст «ноль», текст «0x0000000000000000» или любое из нескольких других соглашений которые существуют по разным причинам. Затем вы попадаете в вопрос о том, какая схема кодирования символов используется - EBCDIC, ASCII, UTF-8, упрощенный китайский, UCS-2 и т. Д.

Определение int из строки требует анализатора и создания строки из int требуется форматтер.