ну, я пытаюсь заставить пользователя вводить целые числа столько, сколько они хотят, пока они не введут отрицательное число. 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;
}
Как atof
должен знать, сколько значащих цифр tempBuff
содержит? Функция atof
принимает только строку C-стиля. В противном случае у него нет способа узнать, сколько символов допустимо.
Вы можете использовать tempBuff[count] = 0;
перед вызовом atof
. Строка в стиле C заканчивается нулевым байтом.