Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Char* to Size_t


Автор: neic 1.7.2010, 14:40
Собственно сабж.

Есть массив char* и есть функция в которой один из аргументов size_t

Автор: 586 1.7.2010, 14:45
Цитата(neic @  1.7.2010,  15:40 Найти цитируемый пост)
и есть функция в которой один из аргументов size_t 

Что за функция? Приведи прототип с описанием.

Автор: neic 1.7.2010, 15:02
Код

------------------------------------------
void addRecord(std::ofstream& database, std::string const& name, std::string const& country, std::size_t price, std::size_t dni, std::string const& transport)
{
    static std::string const kSeparator = " ";

    database
        << name       << kSeparator
        << country    << kSeparator
        << price      << kSeparator
        << dni        << kSeparator
        << transport  << std::endl;
    ;
}
-------------------------------------------
char* mas[32000][5];
...
std::ofstream database1(kVyborkaFile.c_str());
     for (i=0;i<=n-3;i++){
    if (mas[i][2]>=cena){
        addRecord(database1, mas[i][0], mas[i][1], mas[i][2], mas[i][3], mas[i][4]);
    }
    }
    
database1.close();

Автор: Cheloveck 1.7.2010, 15:20
дык у тебя не строку просят, а целое число. size_t - это беззнаковое целое, объёмом с процессорное слово. То есть тебе надо строку сконвертить в целое и передать.

Автор: world 1.7.2010, 15:23
size_t фактически является типом unsigned long (беззнаковое слово). 
Для приведения из формата char* в size_t можно воспользоваться функцией atol(char*). Привожу пример

Код

char* x = new char[5];
strcpy(x, "143");
size_t t = atol(x);


После выполнения кода в переменной t записано 143.

Автор: bsa 1.7.2010, 17:08
Цитата(world @  1.7.2010,  16:23 Найти цитируемый пост)
size_t фактически является типом unsigned long (беззнаковое слово).

Совсем не обязательно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)