escape werkt niet

Status
Niet open voor verdere reacties.

fsasfsas

Gebruiker
Lid geworden
11 sep 2006
Berichten
429
Dag

ik heb de vraag eerder gesteld maar toen een work-around gevonden. Dit keer kan dat helaas niet dus ik moet toch echt een oplossing vinden.
mijn probleem is dat ik de "escape" niet meer werkend krijg.

Ik heb echt uren hiernaar gezocht maar ik kan het antwoord niet vinden.

Het is, zoals gezegd, al eerder mis gegaan.
ik wil een eenvoudige string printen met daarin een " (double quote).
bij mijn weten kon dat met een backslash er voor.

Code:
strcpy_s(tmpstr, sizeof(tmpstr), " dit is een tekst");
dit gaat goed. tmpstr bevat dan ook echt de tekst
dit is een tekst

maar
Code:
strcpy_s(tmpstr, sizeof(tmpstr), " dit is een \" tekst");
gaat niet goed. nu bevat tmpstr de letterlijke tekst
Code:
dit is een \" tekst
en niet
Code:
dit is een " tekst
wat ik wil.
Wat doe ik verkeerd?

ik gebruik visual studio en heb include <stdio.h>

groetjes, Anjo
 
Laatst bewerkt:
Na uren zoeken en uiteindelijk hier de vraag maar stellen lijk ik zelf vlak daarna het antwoord gevonden te hebben. De debugger van de VS die ik gebruik kan blijkbaar niet met de escapes om gaan, maar de code doet het wel. Kortom: als ik de string bekijk met de debugger is ie verkeerd maar de compiler heeft blijkbaar wel de juiste string. Heeft iemand ook de ervaring dat de debugger niet goed is of heb ik gewoon ergens een vlaggetje verkeerd staan?

groetjes, Anjo
 
Probeer dit eens:
Code:
strcpy_s(tmpstr, sizeof(tmpstr), " dit is een \042 tekst");

Of:
Code:
strcpy_s(tmpstr, sizeof(tmpstr), " dit is een \X22 tekst");
 
deze
Code:
strcpy_s(tmpstr, sizeof(tmpstr), " dit is een \042 tekst");

geeft
Code:
dit is een \" tekst

en deze
Code:
strcpy_s(tmpstr, sizeof(tmpstr), " dit is een \X22 tekst");

geeft
Code:
dit is een X22 tekst

Het is de debugger die het probleem geeft. Als ik de string vervolgens gebruik gaat het wel goed. Dus als ik bij de bovenste code de string tmpstr naar het scherm print, staat daar
Code:
dit is een " tekst
alhoewel de debugger dus iets anders zegt...

groetjes, Anjo
 
Dus het werkt alleen in de debugger niet maar verder wel?
Vreemd, maar dan heb je wat je programma betreft dus geen probleem :)
 
Dus het werkt alleen in de debugger niet maar verder wel?
Vreemd, maar dan heb je wat je programma betreft dus geen probleem :)

het lijkt inderdaad gewoon te werken. Daar kwam ik echter pas na uren achter omdat ik in dit geval zwaar op de debugger leunde. Het is een stukje code waarmee ik middels een dos commando wat files wil deleten. En omdat ik dat best een risicovolle actie vind (een tikfoutje en je halve schijf is gedeleted) wilde ik die code extra zorgvuldig debuggen.
Ten einde raad heb ik een heel oud programma erbij gehaald waarvan ik wist dat het functioneerde. Daar liet de debugger ook een verkeerde string zien. Toen viel het kwartje.

Ik blijf het raar vinden en wellicht is het een of andere instelling in de debugger maar nu ik het weet kan ik dergelijke code debuggen door het naar scherm te printen. Beetje omslachtiger maar ach, het werkt.

met dank voor je hulp.

ik hoor graag van iemand of dit inderdaad aan mijn instellingen van de debugger ligt.

groetjes, Anjo
 
Nog een alternatief:
Probeer eens (en meld of de compiler er overr valt of niet etc.):
Code:
strcpy_s(tmpstr, sizeof(tmpstr), @" dit is een "" tekst");

Tijs.
 
Laatst bewerkt:
Nog een alternatief:
Probeer eens (en meld of de compiler er overr valt of niet etc.):
Code:
strcpy_s(tmpstr, sizeof(tmpstr), @" dit is een "" tekst");

Tijs.

dit vindt ie helemaal niet leuk. hij compileert niet: inknown character. (dat at-sign)

groetjes, Anjo
 
Ok, bedankt voor het testen.

Tijs.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan