Zmienna jako nazwa pliku w fopen

Zmienna jako nazwa pliku w fopen
PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0
Kopiuj
 
int main()
{
	char *name=(char*)malloc(50*sizeof(char));
	
	printf("Podaj nazwe pliku: ");
	scanf("%s",name);
	
	*srednia(name);	
	return 0;
}

int *srednia(char *nazwa)
{
	nazwa = (char*)malloc(50*sizeof(char));
	int liczba,rozmiar,i;
	FILE *plik1,*plik2;
	plik1 = fopen(nazwa,"r");
	plik2 = fopen("temp.txt","w");
	
	while(fscanf(plik1,"%d",&liczba)!=EOF)
	{
		if (liczba>0) 
		{
			fprintf(plik2,"%d\n",liczba);
			rozmiar++;
		}
		
	}
	
	fclose(plik1);
	fclose(plik2);

Chodzi mi konkretnie o tą linijkę:

Kopiuj
plik1 = fopen(nazwa,"r"); 

Jeśli w pierwszym parametrze podam nazwe pliku np. "plik.txt" to program działa dobrze. Ale jeśli podam zmienną nazwa, która jest wskażnikiem do tablicy typu char, program nie wykonuje operacji na tym pliku.

Sopelek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 467
3

Zaraz na początku funkcji srednia nadpisujesz zmienną nazwa. Z resztą kompletnie bez sensu.

PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0

dzięki, niezbyt rozumiem wskaźniki, usunalem i dziala

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.