Циклы C ++ - ввод целых чисел до выхода пользователя

0

ну, я пытаюсь заставить пользователя вводить целые числа столько, сколько они хотят, пока они не введут отрицательное число. 1-й шаг состоял в том, чтобы использовать функцию ATOF для преобразования строки в число (что я и сделал), а затем разрешить пользователю вводить целые числа (я могу сделать только один раз, чтобы проверить, могу ли я правильно использовать функцию atof.

Любую помощь/советы оценивают, давая мне правильное направление.
Вот мой код:

#include <iostream>
#include <string>

int main() { 
using namespace std;
char buffer[256];
char tempBuff[256] = {'\n'};
double result; 
int count = 0;

cout << "Testing " << endl;

cout << "Enter Any integers: ";
cin.getline(buffer,256);

for(int i = 0; i < strlen(buffer); i++)
{
    if(isdigit(buffer[i]))
{
    tempBuff[count] = buffer[i];
    count++;
}
}

if (atof(tempBuff) > 0) { 
result = atof(tempBuff) / 2;

}

cout << endl <<  "The integer you put was: " << tempBuff 
<< " And dividing the integers  "<< result << endl;

cin.ignore();
return 0;
}
Теги:
loops

1 ответ

0

Как atof должен знать, сколько значащих цифр tempBuff содержит? Функция atof принимает только строку C-стиля. В противном случае у него нет способа узнать, сколько символов допустимо.

Вы можете использовать tempBuff[count] = 0; перед вызовом atof. Строка в стиле C заканчивается нулевым байтом.

  • 0
    Спасибо за ответ, я переработаю это с помощью функции atof.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню