Odczywtanie danych z pliku w C

0

Witam mam pewien problem, gdyz chce napisac program ktory w jednym pliku przechowywuje marke samochodu oraz rejestracje np. KIA WWXXXXXX, w drugim pliku czas jaki spedzila w danym tygodniu na parkingu np. 10 20 26. Program ma obliczyc sume minut spedzonych na parkingu i zapisac marke rejestracje oraz sume w nowym pliku. Po kompilacji wyskakuja mi dziwne hieroglify
byłbym wdzieczny za pomoc

 
```#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct parking
{
	char samochod[100];
	char rejestracja[100];

};

int _tmain(int argc, _TCHAR* argv[])
{
	struct  parking nazwa[1000];
	int i = 0, j, k, wiersz, licznik;
	int minut[20][20], suma[200];
	
	
	FILE *samochod, *czas, *zapisz_wyniki;

	samochod = fopen("samochod.txt", "r");
	czas = fopen("czas.txt", "r");
	zapisz_wyniki = fopen("wynik.txt", "w");


	while (!feof(samochod))
	{
		fscanf(samochod, "%s %s", &nazwa[i].samochod, &nazwa[i].rejestracja);
		printf("%s %s\n", nazwa[i].samochod, nazwa[i].rejestracja);
		++i;
	}

	fscanf(czas, "%d", &licznik);
	while (!feof(czas))
	{

		for (wiersz = 0; wiersz < i; wiersz++)
		{
			suma[wiersz] = 0;
			for (j = 0; j < licznik; j++)
			{
				fscanf(czas, "%d", &minut[wiersz][j]);
				printf(" %d ", minut[wiersz][j]);
				suma[wiersz] += minut[wiersz][j];
			}

			printf("Suma = %d", suma[wiersz]);
		}
	}
	

	for (k = 0; k < i; k++)
	{
		fprintf(zapisz_wyniki, "%s %s  Suma = %d minut", nazwa[k].samochod, nazwa[k].rejestracja, suma[k]);
	}
	fclose(samochod);
	fclose(czas);
	fclose(zapisz_wyniki);
	
	_getch();
	return 0;
}

 
2
fscanf(samochod, "%s %s", &nazwa[i].samochod, &nazwa[i].rejestracja);

winno wyglądac:

fscanf(samochod, "%s %s", nazwa[i].samochod, nazwa[i].rejestracja);

http://kaczus.ppa.pl/art/Skrzynia_porad,18.html#scanf

1

Dopisz sobie zabezpieczenia , jeśli plik nie istnieje lub jest uszkodzony
if(!NAZWA_PLIKU) printf("Błąd podczas wczytywania/zapisywania danych");

Dodatkowo, jeśli zmienna sterujaca pętla, później nie jest Ci potrzebna tworz ja w forze:
for(int i=0; i<10; ++i)

Wtedy po zakończeniu pętli, zmienna zostaje usunięta i nie zabiera zbednie pamięci.

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