Avatar billede timealert Nybegynder
14. april 2005 - 13:43 Der er 1 kommentar og
1 løsning

Skrive ind fil

Jeg har lavet følgende kode som opretter en fil efter brugerens ønske. Derefter tjekker jeg om der i forvejen findes i fil med samme navn. Hvis der gør giver min kode en fejlmeddelse. Koden ser sådan ud:

int main() {
  while() {
    if() {
    }
    else if() {
        printf ("Skriv navnet paa den fil du vil oprette: ");
        scanf ("%s", filNavn); 
        strcat (filNavn, ".txt");
        input = fopen (filNavn, "r");
       
        if (input == NULL) {
            input = fopen (filNavn, "w");
            printf ("\n\nFilen '%s' er nu blevet oprettet.");
        /* Her skal man kunne skrive i filen*/
        }
        else {printf("\aOBS! Filen '%s' er allerede oprettet.", filNavn);
    }
    else if() {
    }
    else {
    }
  }
}       

Nu vil jeg gerne have at man kan skrive i filen som lige er oprettet og at programmet gemmer filen når man er færdig.
Jeg har lavet noget kode som kan skrive ind i en fil som ser således ud:
int main(void){
int key;
char text[10000];
FILE *ofp, *in;
ofp=fopen("text2.txt","w");
/*hent tekst*/
puts("write something");
gets(text);
/*skriv i fil*/
fprintf(ofp, "%s", text);
/*skriv til skærm*/
if((in=fopen("text2.txt","r"))==NULL);
while(!feof(in)) {
    key=fgetc(in);
    if(!feof(in)) putchar(key);
}
fclose(in);
}

Men når jeg implementere det i min kode virker det ikke. Såvidt jeg kan se springes den sidste løkke over fordi min kode står inde i en "else if"-sætning. Hvordan får jeg implementeret koden så jeg kan skive noget tekst i cmd (i programmet) som den så gemmer i den nyoprettet fil.
Avatar billede bertelbrander Praktikant
14. april 2005 - 17:31 #1
Du skal måske ændre denne:
if((in=fopen("text2.txt","r"))==NULL);

Jeg tror at det går galt når du åbner filen anden gang. Luk ofp inden du åbner den med in. Hvis du vil kunne måde skrive og læse skal du åbne den med "r+".
Avatar billede timealert Nybegynder
17. januar 2006 - 09:37 #2
Ingen svar, ingen point.
Hvis du er uenig så skriv så får du point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB