Ik krijg deze fouten in mijn programma nadat ik wat code heb geplakt:
showdata.cpp:66: error: stray ‘\342’ in program
showdata.cpp:66: error: stray ‘\200’ in program
showdata.cpp:66: error: stray ‘\235’ in program
showdata.cpp:66: error: stray ‘\’ in program
showdata.cpp:66: error: stray ‘\342’ in program
showdata.cpp:66: error: stray ‘\200’ in program
showdata.cpp:66: error: stray ‘\235’ in program
showdata.cpp:67: error: stray ‘\342’ in program
showdata.cpp:67: error: stray ‘\200’ in program
showdata.cpp:67: error: stray ‘\235’ in program
showdata.cpp:67: error: stray ‘\’ in program
showdata.cpp:67: error: stray ‘\342’ in program
showdata.cpp:67: error: stray ‘\200’ in program
showdata.cpp:67: error: stray ‘\235’ in program
Dit zijn de twee regels die de fouten veroorzaken.
size_t startpos = str.find_first_not_of(” \t”);
size_t endpos = str.find_last_not_of(” \t”);
Hoe kan ik dit oplossen?
Antwoord 1, autoriteit 100%
Het symbool ”
is niet "
. Dat worden ‘slimme aanhalingstekens’ genoemd en zijn meestal te vinden in uitgebreide documenten of blogs.
Antwoord 2, autoriteit 13%
De lijnen
size_t startpos = str.find_first_not_of(” \t”);
size_t endpos = str.find_last_not_of(” \t”);
heb wat “speciaal” soort dubbele aanhalingstekens, probeer het volgende:
size_t startpos = str.find_first_not_of(" \t");
size_t endpos = str.find_last_not_of(" \t");
Antwoord 3, autoriteit 7%
Dit soort foutmelding, error: stray ‘\xyz’ in program
, kan verschijnen met elk ander teken of symbool dat door de compiler niet als legaal wordt herkend.
Mijn persoonlijke ervaring delen:
- bool less<const char?>(const char? a, const char? b)
- bool less<const char*>(const char* a, const char* b)
De eerste is gekopieerd en geplakt vanuit een pdf-bestand. Het compileert niet.
De laatste compileert zoals verwacht.
Antwoord 4
U kunt de opdracht sed gebruiken om deze problemen op te lossen.
Dit geeft je een snel voorbeeld van wat er zal worden vervangen.
sed s/[”“]/'"'/g File.txt
Hiermee worden de vervangingen uitgevoerd en wordt de vervanging in een nieuw bestand met de naam WithoutSmartQuotes.txt geplaatst.
sed s/[”“]/'"'/g File.txt > WithoutSmartQuotes.txt
Hiermee wordt het originele bestand overschreven.
sed -i ".bk" s/[”“]/'"'/g File.txt