indfil/udfil - fejlmeddelelse

Tags:    c++

Hej med jer!

Jeg havde skrvet et ellers simpelt og lille proram til at rette æ, ø og å i et af mine andre programmer, så de ville blive læst rigtigt. Det vil gerne kopile, men når jeg prøver at køre det, får jeg en fejlmeddelelse - "Programmet har fundet en fej, og afsluttes" - og det dur jo ikke...

Jeg kan ikke finde nogen fejl i mit program - har I nogn gode forslag?

Herunder står koden, hvis det hjælper:


#include <stdio.h>
#include <string.h>

main()
{
FILE *indfil, *udfil;
char ch;
char svar[2];

indfil=fopen("Tabeltræning_random_praemie.cpp","r");
udfil=fopen("Tabeltræning_random_praemie_god.cpp","w");
while(!feof(indfil))
{
fscanf(indfil, "%c", &ch);
strcpy(svar, "");
switch (ch)
{
case 'æ': strcpy(svar,"æ"); break;
case 'ø': strcpy(svar, "ø"); break;
case 'å': strcpy(svar, "å"); break;
}
if (svar[0] != '\\0')
fprintf(udfil, "%c\\n", ch);
else
fprintf(udfil, "%c\\n", ch);
}
fclose(indfil);
fclose(udfil);


}




Er du sikker på at filerne bliver åbnet?
Prøv at lave et check:
Fold kodeboks ind/udKode 


I øvrigt er der vist noget galt med logikken, svar[0] er vist altid != '\\0' og du skriver altid ch ud.



Husk at initialisere dine variabler, når du erklærer dem. Du har herved en mulighed for at checke om de er valide senere.

Prøv at se på nedenstående snippet, som jeg har modificeret og tilføjet kodekommentar. Det er muligt at der andre (logiske) fejl også...

Fold kodeboks ind/udKode 


Hth



Indlæg senest redigeret d. 03.07.2007 17:39 af Bruger #10448
t