Ik ben een programma aan het maken in C/C++ in Dev c++ 4.9.7.9 die als een soort If statement gaat fungeren voor een andere programmeer taal die standaard geen If then else condities kent maar wel dos programma's kan openen.
Ik ben dus een programma aan het schrijven die de parameters achter het commando inleest en dit ziet er dan ongveer zo uit:
c:\ifmet 5 ">" 1
return 1
Hij leest dus 3 parameters uit namelijk value1, operator en value2. Het probleem is dat het bij het inlezen van de operator fout gaat. Hij zet dit in een char neer. Als ik deze op het scherm print dan staat er gewoon de operator (in dit geval een > ) in maar zodra ik met een if statement hierop controleer dan zegt hij dat dit false is en gaat hij dus niet naar de procedure TFConvert:
Als ik gewoon de procedure zonder check op die operator aanroep lukt het wel dus het moet in dit stuk zitten. Hieronder rest van mogelijk interessante code :
Even voor de duidelijkheid, in *argv[] komen dus de ingeven parameters terecht en argc is het aantal parameters. Het zal denk ik wel een dom foutje zijn ofzo. Ik ben beter in Borland C ++
Ik ben dus een programma aan het schrijven die de parameters achter het commando inleest en dit ziet er dan ongveer zo uit:
c:\ifmet 5 ">" 1
return 1
Hij leest dus 3 parameters uit namelijk value1, operator en value2. Het probleem is dat het bij het inlezen van de operator fout gaat. Hij zet dit in een char neer. Als ik deze op het scherm print dan staat er gewoon de operator (in dit geval een > ) in maar zodra ik met een if statement hierop controleer dan zegt hij dat dit false is en gaat hij dus niet naar de procedure TFConvert:
C++:
1
| if (mainv.oper==">") TFConvert(greaterthen(mainv.val1,mainv.val2)); |
Als ik gewoon de procedure zonder check op die operator aanroep lukt het wel dus het moet in dit stuk zitten. Hieronder rest van mogelijk interessante code :
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
42
| int main(int argc, char *argv[]) { for (int c=1; c<argc; c++) { GetInput(c,argv[c]); } cout << mainv.oper; // Laat zien wat er in mainv.oper zit if (mainv.oper==">") TFConvert(greaterthen(mainv.val1,mainv.val2)); if (mainv.oper=="<") TFConvert(lesserthen(mainv.val1,mainv.val2)); if (mainv.oper=="=") TFConvert(equalto(mainv.val1,mainv.val2)); return 0; } void GetInput(int a,char c[]) { if (a==1) { mainv.val1 = atoi(c); } if (a==2) { strcpy(mainv.oper,c); } if (a==3) { mainv.val2 = atoi(c); } } // stukje uit header file class Cmain { public: int val1; int val2; char oper[]; }; Cmain mainv; |
Even voor de duidelijkheid, in *argv[] komen dus de ingeven parameters terecht en argc is het aantal parameters. Het zal denk ik wel een dom foutje zijn ofzo. Ik ben beter in Borland C ++
Specs: Game/LANBak FTP/Gameserver Unix Server Visit http://www.gamesfm.nl