2011-10-05 28 views
13

मैं सी ++ में एक छोटे से कार्यक्रम लिख रहा हूँ, और एक अजीब त्रुटि के पार चलो:त्रुटि: प्रोग्राम में stray ' XXX': क्यों?

src/Makefile/Tool.cpp:42:3: error: stray ‘\302’ in program 
src/Makefile/Tool.cpp:42:3: error: stray ‘\240’ in program 

मैं vim में इस कार्यक्रम और इसी लाइन (छिपा वर्ण दिखाते हुए) लिख रहा हूँ है:

>--->---std::vector<std::string> { "--debug" }$ 

यह प्रश्न इस त्रुटि को हल करने के बारे में नहीं है, क्योंकि मुझे बस लाइन को कॉपी करना है और त्रुटि-कारण गायब हो गया है।

ऐसा लगता है कि त्रुटि सभी रिश्तेदार विकल्पों को सक्रिय करने के बाद भी कुछ पात्रों द्वारा छिपी हुई है!

प्रश्न है जो उन त्रुटियों के कारण हो सकता है।

+0

आप असली कोड क्यों पोस्ट नहीं करते? – Nawaz

+0

यह वास्तविक कोड है। आप पूरे दायरे चाहते हैं? हालांकि यह उपयोगी नहीं था, लेकिन यदि आवश्यक हो तो मैं कर सकता हूं। – Geoffroy

+0

क्या? वास्तविक कोड में '> ---> ---' है? और अंत में '$'? – Nawaz

उत्तर

23

"\302\240"U+00A0 NO-BREAK SPACE के लिए यूटीएफ -8 है। विम सामान्य रूप से इसे किसी भी विशेष के रूप में हाइलाइट नहीं करेगा, इसलिए यदि आपके पास 'list' मोड सक्षम है तो भी किसी के लिए छेड़छाड़ करना संभव है।

आप उन लोगों के साथ उजागर कर सकते हैं:

:set listchars+=nbsp:. 

या आप की तरह किसी भी चरित्र।

+0

धन्यवाद, लेकिन यह कोड मेरे कोड में क्यों है? मैं बस इसे विम के साथ संपादित करता हूं और कुछ भी नहीं, इसलिए मुझे नहीं पता कि यह कहां से आ सकता है:/ – Geoffroy

+2

@Geoffroy क्या आप वाकई किसी वेबपृष्ठ या किसी मैनपेज या किसी कोड से कॉपी नहीं करते हैं? – hobbs

+0

हां, मैंने इसे स्वयं टाइप किया – Geoffroy

0

मेरे लिए यह समस्या एक वेब ब्राउज़र से मेरा कोड कॉपी करने से आई है।

मैंने वास्तविक स्थान के साथ सभी रिक्त स्थान को बदलने के लिए vim में :%s///g करने का प्रयास किया लेकिन यह असफल रहा है।

मैंने इस त्रुटि की रिपोर्ट करने वाली सभी पंक्तियों के अग्रणी व्हाइटस्पेस को हटा दिया और फिर स्पेस कैरेक्टर डाले। यह श्रम गहन है लेकिन मुझे लगता है कि एकमात्र समाधान प्रतीत होता है।

+1

यदि भटक '\ 302' है, तो आप अपने समाधान के लिए':% s, \% o302, g' – xoolive

0

मेरे पास एक ही समस्या थी और यह प्रत्येक पंक्ति से पहले रिक्त स्थान के लिए वर्ण एन्कोडिंग थी। ऐसा नोट्स प्रोग्राम्स से कॉपी करने के कारण हुआ जो Exchange Server & iCloud के साथ समन्वयित किया गया था। मुझे बस इतना करना है कि सामान्य सभी के साथ सभी अजीब रिक्त स्थानों पर नोटपैड का उपयोग करके सभी को प्रतिस्थापित करें और सबकुछ सामान्य रूप से संकलित हो।

8

उपरोक्त के रूप में यह आपके स्रोत में कुछ दिखाई देने वाले वर्णों के कारण है। इसका एक महान समाधान अष्टाधारी मोड में अपने फ़ाइल को संपादित करने के लिए है और आप में सक्षम इन पात्रों है 'देखना' होगा:

od -c MyClass.hpp 

तो फिर तुम अष्टाधारी में देख सकते हैं प्रवाह "अजनबियों":

0001240 t  s t r i n g &  n a m e  ) 
0001260  { **302 240** t h i s - > n a m e  = 
0001300  n a m e ;  } \n \n \n \t \t \t \t /

बोल्ड में यह दो पात्रों की तरह

error: stray ‘\302’ in program 

फिर आप उन्हें हटा सकते हैं और पुनर्निर्माण संदेशों के कारण हैं।

सम्मान।

+1

+1 का उपयोग कर सकते हैं, अच्छी तरह समझाया गया है और किसी भी अन्य चरित्र के लिए भी काम करता है;) – Geoffroy

+1

यह एक जीवन बचाने वाला था ! –

संबंधित मुद्दे