Problem z wczytywaniem z pliku w C

0

Witam
Mam problem z wczytaniem z pliku liczb zespolonych.
Problem polega na tym, ze program wczytuje ze standardowego wyjscia liczbę zespolona do tablicy struktur, ale tylko jak jest ona zapisana w formacie 1+2i. Jak zrobić, by program wczytywał także liczbę 1+i2?
Mój kod:
#include <stdio.h>
#include <math.h>
#include <complex.h>
#include <stdlib.h>
struct liczba
{
double rzecz1;
double ur1;
};
int main(void)
{
int i=0;
struct liczba data=(struct liczba) malloc(sizeof(struct liczba));
while(!feof(stdin))
{
scanf("%lf", &data[i].rzecz1);
scanf("%lf", &data[i].ur1);
}
double complex z1=data[i].rzecz1+I*data[i].ur1;
printf("Czesc rzeczywista liczby zespolonej: %lf\n", creal(z1));
printf("Czesc urojona liczby zespolonej: %lf\n", cimag(z1));
return 0;

}

1
#include <stdio.h>

int main()
{
	double re,im;
	for(char sign;scanf("%lf%ci%lf",&re,&sign,&im)==3;)
	{
		if(im<0) break;
		if(sign=='-') im=-im;
		else if(sign!='+') break;
		printf("%lf,%lf\n",re,im);
	}
	return 0;
}

https://ideone.com/Xbn61W

1 użytkowników online, w tym zalogowanych: 0, gości: 1