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å...
pragma warning (disable : 4996)
#include "stdafx.h"
#include <stdio.h>
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
// Husk at initialisere dine variabler,
// når du erklærer dem.
FILE *indfil = NULL,
*udfil = NULL;
char ch;
char svar[2];
// Husk at initialisere.
memset(svar, 0, 2);
// Hint: Åben gerne filen i binære mode...
indfil=fopen("Tabeltræning_random_praemie.cpp","r");
// Check på om filen faktisk bliver åbnet
if (NULL == indfil)
return -1;
udfil=fopen("Tabeltræning_random_praemie_god.cpp","w");
// Check på om filen faktisk bliver åbnet
if (udfil == udfil)
return -1;
while(!feof(indfil))
{
fscanf(indfil, "%c", &ch);
strcpy(svar, "");
switch (ch)
{
case 'æ': strcpy(svar,"æ"); break;
case 'ø': strcpy(svar, "ø"); break;
case 'å': strcpy(svar, "å"); break;
default: memset(svar, 0, 2);
}
fprintf(udfil, "%c\\n", ch);
// Jeg kan ikke se forskellen på din
// if-blok og din else-blok
//if (svar[0] != '\\0')
// fprintf(udfil, "%c\\n", ch);
//else
// fprintf(udfil, "%c\\n", ch);
}
fclose(indfil);
fclose(udfil);
}
Hth
Indlæg senest redigeret d. 03.07.2007 17:39 af Bruger #10448