Odczyt i zapis liczb z i do pliku

0

Witam, kombinowałem nad programem który w C ma działać pod linuxa, wczytywać liczby z pliku txt, konwertować na rzymskie i zapisywać do innego pliku txt. Pomijając samą konwersje (której tu jeszcze nie ma :( ) coś mi się chyba zepsuło i nie chce zapisać do drugiego pliku.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main ()
 {
   FILE *plik;
   FILE *plik2;
   int i=0;
   int liczby[i];
   int I=1, V=5, X=10, L=50, C=100, D=500, M=1000;
   plik = fopen("liczbyArabskie.txt", "r"); 

   if (plik == NULL)
   {
    printf("Otwarcie nieudane");
    exit(-1);
   }
   while (fscanf(plik, "%d") != EOF)
   {
   while(fscanf(plik,"%d",&liczby[i])!=" ")
    {
        i++;
    }
   }  
   plik2=fopen("liczbyRzymskie.txt","w");
   fprintf (plik2, "%s");
   i=1; 

   fclose(plik2);
   exit(0);
} 
1

Wywal to i zacznij od nowa, ponieważ lista tego co tu jest źle znacznie przekracza rozmiar poprawnego kodu.
Nie magazynuj tych liczb, wczytałeś kolejną od razu ją do pliku wynikowego.

0

Yay, działa teraz :) Dzięki za podpowiedz. Jeszcze potrzeba tu implementacja konwersji na rzymskie, jakaś malutka pomoc?

 #include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main ()
 {
   FILE *plik;
   FILE *plik2;
   int i=0;
   int n;
   int I=1, V=5, X=10, L=50, C=100, D=500, M=1000;
   plik = fopen("liczbyArabskie.txt", "r"); 
   plik2=fopen("liczbyRzymskie.txt","w");

   if (plik, plik2 == NULL)    
   {
    printf("Otwarcie nieudane");
    exit(-1);
   }
   while (feof(plik) == 0) 
   {
    fscanf (plik, "%d",&n);
    printf("%d ",n);
    fprintf(plik2,"%d ",n);
   }
   fclose(plik);
   fclose(plik2);
   exit(0);
}
0

warunek if (plik, plik2 == NULL) jest niepoprawny, ma być: if((!plik)||(!plik2))
Konwersji na rzymskie ze dwie w ostatnim tygodniu na tym forum się przewinęło, grubo ponad dziesięć przez ostatni rok.
Szukanie w lewym górnym rogu.

1

Jeśli dobrze zrozumiałem ten kod, to w pewnej sytuacji powodować będzie wyciek pamięci; Dokładniej chodzi o sytuację, gdy jeden plik zostanie otwarty, a drugi z jakiejś przyczyny nie - wtedy wychodzisz z programu, nie zamykając tego otwartego pliku; To by trzeba poprawić.

0

taa pare kruczków sie znajdzie, nie ma pełnego zabezpiecznia, nie potrzebne mi jest to teraz, chodzi o idee, poprawnosc konwersji, wczytywania/zapisu

Poza tym, działa to w ten sposób, że ten drugi plik (liczbyrzymskie) tworzy się automatycznie, nie musi go nawet być :o

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