Программа со строками (C++)

Здравствуйте, помогите дописать код к программеПостановка задачи Разработать программу, выполняющую обработку строк в соответствии с заданием для вашего варианта. Исходные строки вводятся с клавиатуры. Обработка строк должна осуществляться посимвольно (использование функций форматированного ввода scanf и sscanf не допускается). Мой вариант Найти произведение вещественных чисел, перечисленных в исходной строке через запятую. Ввод исходной строки осуществляется с клавиатуры. Пример ввода: 2,1.5,33 Результат: 99
Код:
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "string.h"
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{ setlocale(LC_ALL, "Rus");
	 
 char str[10];
 cout<<"Введите числа через запятую\n";
		cin>>str;
		

 
 getch ();
	return 0;
}
Я смог прописать ввод данных в строку, но не могу понять как перемножить их. Помогите, заранее благодарен
6 ответов

Предлагаю упростить:
float q,w,e;
 scanf("%f,%f,%f",&q,&w,&e);
 printf("%f",q*w*e);
Это код для внутренностей твоей tmain


Предлагаю упростить:
float q,w,e;
 scanf("%f,%f,%f",&q,&w,&e);
 printf("%f",q*w*e);
Это код для внутренностей твоей tmain
Я бы с удовольствием, но такой метод мне известен, а его как раз нельзя использовать. В задании запрещено пользоваться этими функциями.


Есть вот такая функция (даю ссылку, там и пример есть): http://www.cplusplus.com/reference/cstdlib/strtod/


Есть вот такая функция (даю ссылку, там и пример есть): http://www.cplusplus.com/reference/cstdlib/strtod/
Всё прекрасно, но нельзя мне использовать функцию scanf


А так?
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>


int main(int argc, const char* argv[])
{
	char* last;
	char* next;
	char buffer[255];
 ****** result = 1.0L;

	/* Читаем всю строку целиком, думаю этого делать не запрещено*/
	printf("Input: ");
	scanf("%s", &buffer);

	last = buffer;

	while (*last) {
 /* 
 Преобразуем начало строки в число и 
 получаем указатель на след. не цифровой символ
 */
		result *= strtod(last, &next);
		
 /* Пропускаем не цифровые символы */
		while (*next) {
			if (isdigit(*next)) {
				break;
			}
			else { 
				++next;
			}
		}

		last = next;
	}

	printf("Result: %f\n", (float)result);

	system("pause");

	return 0;
}


А так?
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>


int main(int argc, const char* argv[])
{
	char* last;
	char* next;
	char buffer[255];
 ****** result = 1.0L;

	/* Читаем всю строку целиком, думаю этого делать не запрещено*/
	printf("Input: ");
	scanf("%s", &buffer);

	last = buffer;

	while (*last) {
 /* 
 Преобразуем начало строки в число и 
 получаем указатель на след. не цифровой символ
 */
		result *= strtod(last, &next);
		
 /* Пропускаем не цифровые символы */
		while (*next) {
			if (isdigit(*next)) {
				break;
			}
			else { 
				++next;
			}
		}

		last = next;
	}

	printf("Result: %f\n", (float)result);

	system("pause");

	return 0;
}
Мне сказали, что scanf и printf нельзя пользоваться ни в каком виде