Hallo,
Ik probeer een programma te schrijven dat vraagt om:
-pad invoerbestand
-bestandsnaam invoerbestand
-pad uitvoerbestand
-bestandsnaam uitvoerbestand
Vervolgens zal het programma een tabel die in het invoerbestand staat 90 graden draaien en in het uitvoerbestand wegschrijven.
Het programma moet bestand zijn tegen het verkeerd invullen van de bestandsnaam van het invoerbestand. Dat wil zeggen dat wanneer de bestandsnaam van een niet bestaand invoerbestand wordt ingevoerd, het programma opnieuw om de naam zal vragen.
Ik heb dit op de volgende manier gedaan:
Wanneer ik nu alles in 1 keer goed invul werkt het programma naar behoren.
Wanneer ik de verkeerde bestandsnaam invul vraagt het programma mij nogmaals de bestandsnaam in te vullen.
Tot zover werkt alles dus zoals bedoeld.
Wanneer ik echter de goede bestandsnaam invul nadat ik een verkeerde heb ingevuld blijft het programma mij vragen om een bestandsnaam, hoe vaak ik ook de goede invul.
Ik heb de 'do while' al op een paar alternatieve manieren in mijn code gehad, maar steeds bleef het programma in de loop hangen.
Wat doe ik hier fout?
Ik probeer een programma te schrijven dat vraagt om:
-pad invoerbestand
-bestandsnaam invoerbestand
-pad uitvoerbestand
-bestandsnaam uitvoerbestand
Vervolgens zal het programma een tabel die in het invoerbestand staat 90 graden draaien en in het uitvoerbestand wegschrijven.
Het programma moet bestand zijn tegen het verkeerd invullen van de bestandsnaam van het invoerbestand. Dat wil zeggen dat wanneer de bestandsnaam van een niet bestaand invoerbestand wordt ingevoerd, het programma opnieuw om de naam zal vragen.
Ik heb dit op de volgende manier gedaan:
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| #include <stdio.h> #include <string.h> int main() { FILE * ifp,* ofp; char padinvoer[100], naaminvoer[50], paduitvoer[100], naamuitvoer[50]; int array[10][10]; int r, k, doorgaan; printf("\nPad invoerbestand:\n"); scanf("%s", padinvoer); do{ printf("Naam invoerbestand\n"); scanf("%s", naaminvoer); ifp = fopen(strcat(padinvoer, naaminvoer), "r"); if (ifp == NULL) doorgaan = 1; else doorgaan = 0; }while(doorgaan); printf("\nPad uitvoerbestand:\n"); scanf("%s", paduitvoer); printf("Naam uitvoerbestand\n"); scanf("%s", naamuitvoer); ofp = fopen(strcat(paduitvoer, naamuitvoer), "w"); for (r=0;r<10;r++) for(k=0;k<10;k++) fscanf(ifp, "%d", &array[r][k]); for (r=0;r<10;r++) { for(k=0;k<10;k++) fprintf(ofp, "%d ", array[k][r]); fprintf(ofp, "\n"); } } |
Wanneer ik nu alles in 1 keer goed invul werkt het programma naar behoren.
Wanneer ik de verkeerde bestandsnaam invul vraagt het programma mij nogmaals de bestandsnaam in te vullen.
Tot zover werkt alles dus zoals bedoeld.
Wanneer ik echter de goede bestandsnaam invul nadat ik een verkeerde heb ingevuld blijft het programma mij vragen om een bestandsnaam, hoe vaak ik ook de goede invul.
Ik heb de 'do while' al op een paar alternatieve manieren in mijn code gehad, maar steeds bleef het programma in de loop hangen.
Wat doe ik hier fout?