2015-04-29 3 views
-4

int Единицы;Преобразование строки в int и сохранение результата в переменной

void input(int i) { 
    char temp[50]; 
    printf("Enter class id for #%d > ", i + 1); 
    readLine(ClassID);  
    printf("Enter Name for #%d > ", i + 1); 
    readLine(ClassName);   
    printf("Enter Description for #%d > ", i + 1); 
    readLine(Description);  
    printf("Enter pre-reqs for #%d > ", i + 1); 
    readLine(PreReqs); 
    printf("Enter units > "); 
    readLine(temp); 
    // Write a method to convert String temp into an integer and store it in the Units field 

Я думаю, что нужно что-то делать с вложенным циклом, но я точно не знаю, как идти о конверсии, пожалуйста, помогите.

+0

Предполагая, что у вас есть строка в виде массива символов, тогда я считаю, что вы ищете функцию 'atoi()': http://www.cplusplus.com/reference/cstdlib/atoi/ – NoseKnowsAll

ответ

0

Используйте atoi() функцию из cstdlib (вам нужно будет включить cstdlib в верхней части файла):

units = atoi(temp); 

Он преобразует массив символов в целое число. См. here.

Вы также можете использовать strtol(), что позволяет проверить ошибки, см. here. Кредит: @NathanOliver

+1

'atoi' даже не позволяет проверять ошибки, если 0 - возможный результат. – chris

+1

Если вы собираетесь предлагать функции от '' они должны ['strtol()'] (http://www.cplusplus.com/reference/cstdlib/strtol/http://www.cplusplus.com/reference/ cstdlib/strtol /), так как вы можете проверить наличие ошибок. – NathanOliver

+0

@NathanOliver Я предположил atoi(), поскольку я мог сказать, что ОП может найти его более сложным, чем atoi(), судя по вопросу и отправленному коду. – SamTebbs33

Смежные вопросы