Obsługa plików C/c++

0

Witam.
Jestem początkujący i mam problemy z obsługą plików. Mam konkretne zadanie:

Z wykorzystaniem bibliotek standardowych C++ (tj. strumienie ifstream, ofstream) odczytaj zawartość pliku ‘pw_zadania_8_oceny.txt’. W pierwszym wierszu znajduje się liczba rekordów n. Dalsza część pliku składa się n wierszy po dwie kolumny: nazwisko i liczba punktów (wykorzystaj typ strukturalny). Następnie utwórz nowy plik wypisując zamiast liczby punktów wynik procentowy (maksymalna liczba punktów to 12).

Zadanie to mam zrobić za pomocą c++ jak w poleceniu i C z wykorzystaniem fscanf, fopen, fprintf, fclose

Jeśli chodzi o c++ to wiem wiecej, wczytuje dane itp, ale nie wiem jak wczytac gdzies wartosci ocen ... Próbowałem brać znak po znaku, ale i to nie wyszło.
Jeżeli chodzi o C to mam już same problemy z wczytaniem wartości z pliku.

Jeżeli ktoś byłby mi wstanie pomóc, byłoby mi bardzo miło.

0

dane z pliku wczytaj do tablicy. wiesz, ile ma rekordów, więc tyle będzie miała elementów. oczywiście (zgodnie z poleceniem) zrób tablice struktur. wiesz także, liczby są drugie w kolejności, więc wystarczy, że zapiszesz to co znajduje się po znaku spacji.

0

OK, za pomoca structury ładnie wyszło, ale zrobiłem to tylko w C++, bo jak mówiłem C jeszcze za bardzo nie opanowałem.
Czy mógłby ktoś napisać jak to wczytać za pomocą C ?

edit:
Napisałem coś takiego, ale nie chodzi ;/


#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;

struct oceny{
	string imie;
	int wynik;
};


int _tmain(int argc, _TCHAR* argv[])
{
 
 FILE *plik;
 int i;
 plik = fopen("pw_zadania_9_oceny.txt","r");
	fscanf(plik, "%i", &i);

	struct oceny *z = new oceny [i];

	for(int j=0; j<i; j++)
	{
		fscanf(plik,"%s, %f", z[j].imie, z[j].wynik);
		printf("%s, %d", z[j].imie, z[j].wynik);
	}


	printf("%i", i);
	fclose(plik);
	cin.ignore();
	return 0;
}

 

Już sobie poradziłem, przecież C nie obsługuje stringów :D .. zrobiłem to na tablicy charów i poszło.

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