29. oktober 2002 - 18:21Der er
22 kommentarer og 1 løsning
meget underligt!!
For at advare jer så er dette et lidt mærkeligt spg.
Jeg laver et program i c der henter en liste af varer ind i et structarray og bagefter skriver det ud i konsollen. Det er så her at det mærkelige kommer. En af varene i lister er Strømper og dette ord vil programmet ikke skrive ud.
Er der nogle der ved hvad der foregår...??
ps. hvis jeg ændrer varenavnet i varelisten til sokker virker det fint og jeg har andre varer med 'ø' i listen f.eks trøjer.
Nu vil jeg tillade mig at gå ud fra at det er den her: printf("vis tekst i while: %s\n",tekst); i vis-funktionen der ikke vil udskrive varenavnet "Strømper"
Du kan jo prøve i din 'void sendvarelager(int bruger_id)'-funktion at udskrive alle dine varenavne ligesom du prøver på klient-siden. Altså i din for-løkke indsætte en: printf("Debug: Varenavn == %s\n", vare[j].navn);
- Hvis DEN heller ikke vil udskrive "Strømper" rigtigt, må fejlen vel næsten ligge et sted på serversiden. (Eller måske på begge sider) - Hvis den udskriver det fint, må fejlen findes et sted fra serveren kalder 'send', til klienten har kaldt 'modtag'.
En anden ting: Nu siger du at det virker fint når du kalder "Strømper"ne for "sokker", men har du prøvet at give "Strømper" et andet navn der er lige så langt, uden æøå... "CocaCola" :)
En tredje ting: Nu er du sikker på at alle dine char-arrays er store nok til at indeholde det du skriver til dem ik'? Jeg mener... Hvis du skriver et 10-cifret varenummer til varenr_char, får du jo et problem, når der ikke er plads nok til at gemme det sidste '\0' i array'et.
PS!!! Rimeligt meget gætværk her... Det er ikke ligefrem nemt at finde en fejl, når man kun ser et lille udsnit af koden... På den anden side kan jeg også godt forstå at du ikke har postet hele din løsning med alle de andre DØK'ere på kanalen ;)
Selvfølgelig kan der vel være en fejl i koden men... strømper kan udbyttes med et længere eller lige så langt navn og så virker det. der er både længere varenavne og andre navne med æøå i listen. Det virker lidt som om at strømper er et reserveret ord eller sådan noget.....
Hmm... Ja det virker meget underligt. Når det ikke er noget problem at bruge navne der er længere end "Strømper" falder mine idéer jo lidt til jorden, men det er jo kun godt nok :)
Jeg er ked af at jeg ikke rigtig kan hjælpe dig så, men du må love at fortælle hvad der var galt hvis/når du finder ud af det :)
Jeg er ikke sikker på hvor meget jeg kan gøre, men du skal være velkommen til at sende hele din opgave til mig. Så kan jeg se på det i en større helhed... Det KAN jo være jeg er heldig at finde frem til problemet :)
Prøv at debugge... Jeg har været ude for ting der er lige så underlige, og løsningen findes oftest ved at single-steppe gennem programmet. Held og lykke! Og skriv venligst, når du finder ud af, hvad der var galt - er ret nysgerrig ;)
1) Enten At dine send/receive metoder ikke understøtter nationale karakterer
2) Eller Du sender i eet tegnsæt (f.eks. DOS 850) og modtager i et andet (Windows ISO9000), og derfor bliver dine nationale karakterer ikke "oversat" korrekt. (I det fleste tegnsæt ligger A-Z samme sted rent "index" mæssigt, altså f.eks. 65 = A. Det gælder dog ikke EBCDIC.)
hello2all >> Prøv at ændre teksten til 'Stroemper' f.eks. - hvis det virker, er det nok ikke derfor. Hvad med 'strømper' (lille s) eller 'strmøper' (Bevidst stavefejl) - virker det ?
Prøv med forskellige kombinationer, for at se om det kun er den ene specielle kombination der ikke fungerer. Det kunne være at parseren (et eller andet sted) betragter 'ø' som separator tegn, og kun lade det smutte igennem, hvis den ikke kan få noget fornuftigt ud af resten.
prøv at indsætte koderne efter lig med tegnet, i stedet for de danske karakterer i din kode. eksempel: skrive På næste lørdag = P\x86 n\x91ste l\x9Brdag æ = \x91 Æ = \x92 ø = \x9B Ø = \x9D å = \x86 Å = \x8F
værs'go soepro. Vi er ved at bevæge os ud i noget jeg slet ikke ved noget om. Håbede at der var en "nem" forklaring på dette underlige fænomen.
Tak for hj/x91lpen...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.