11. april 2005 - 10:27
Der er
8 kommentarer og 1 løsning
if / else, virker ikke som det skal
har den her klat kode. // show if we log 2 file or not. if(log == "1" || log != "0") { // logging to file on char * msg = lang.LanguageGetline(hdwnd, langu, "15"); com.WriteLog(hdwnd, msg); EnableWindow(hSavelog, FALSE); } else if(log == "0") { // logging to file off char * msg = lang.LanguageGetline(hdwnd, langu, "16"); com.WriteLog(hdwnd, msg); } den skal tjekke om den skal logge til fil eller ikke, hvis den skal logge eller ikke skal den så skrive det til vinduet. problemet er, den ikke tjekker det korrekt, den skriver den ikke logger uanset hvad min config fil er. jeg har tjekket at den finder ud af om det er en 1 eller 0 der står i config filen. selv om der står 1, så skriver den, at den ikke logger til fil. nogen der kan komme med en ide til hvordan jeg fikser det?
Annonceindlæg fra DE-CIX
11. april 2005 - 10:32
#1
Hvilken type er log? hvis det er en char*, skal du bruge strcmp til at sammenligne med!
11. april 2005 - 10:39
#2
henter min log (fra memory) sådan her #define log set.getLog2file() // get logging status med den overstående kode laver den logging to file on, uanset om der er 0 eller 1 i config filen
11. april 2005 - 10:39
#3
min getlog2file() char * getLog2file() { char * key = "Log2File"; char * log2file = mss[key].log2file; return log2file; }
11. april 2005 - 10:48
#4
jpk har ret log == "1" skal være strcmp(log,"1")==0
11. april 2005 - 10:50
#5
Som sagt, du kan ikke sammenligne char pointer v.h.a. operator ==, du skal fx bruge strcmp metoden if(strcmp(log, "1") == 0) // ens else // forskellige
11. april 2005 - 10:51
#6
i har ret, hvis vil have pointsne ? eller vil i dele ?
11. april 2005 - 10:52
#7
det må vist være jpk's alene
11. april 2005 - 11:01
#8
Har du checket at det virker?
11. april 2005 - 11:15
#9
ja, det virker.
Kurser inden for grundlæggende programmering