2010-02-09 13 views
11

पर कनवर्ट करें मैं पहली बार सी ++ सीख रहा हूं। मेरे पास कोई पिछली प्रोग्रामिंग पृष्ठभूमि नहीं है।सी ++ भ्रम। पाठ फ़ाइल से पूर्णांक पढ़ना। ASCII

पुस्तक में मैंने यह उदाहरण देखा है।

#include <iostream> 

using::cout; 
using::endl; 

int main() 
{ 
    int x = 5; 
    char y = char(x); 

    cout << x << endl; 
    cout << y << endl; 

    return 0; 
} 

उदाहरण समझ में आता है: एक पूर्णांक मुद्रित करें और इसके ASCII प्रतिनिधित्व को प्रिंट करें।

अब, मैंने इन मानों के साथ एक टेक्स्ट फ़ाइल बनाई है। "TheFile.txt" - - और ASCII मूल्य के लिए इन नंबरों कनवर्ट करना चाहते हैं

48 
49 
50 
51 
55 
56 
75 

मैं इस पाठ फ़ाइल को पढ़ने के लिए एक कार्यक्रम लिख रहा हूँ।

यहां लिखा गया कोड है।

#include <iostream> 
#include <fstream> 

using std::cout; 
using std::endl; 
using std::ifstream; 

int main() 
{ 
    ifstream thestream; 
    thestream.open("theFile.txt"); 

    char thecharacter; 

    while (thestream.get(thecharacter)) 
    { 
     int theinteger = int(thecharacter); 
     char thechar = char(theinteger); 
     cout << theinteger << "\t" << thechar << endl; 
    } 


    system ("PAUSE"); 
    return 0; 
} 

यह दिखाए गए दूसरे कार्यक्रम के बारे में मेरी समझ है।

  • कंपाइलर "theFile.txt" में मौजूद सटीक डेटा प्रकार को नहीं जानता है। नतीजतन, मुझे इसे निर्दिष्ट करने की आवश्यकता है इसलिए मैं डेटा को चार के रूप में पढ़ना चुनता हूं।
  • मैंने फ़ाइल में प्रत्येक अंक को चार के रूप में पढ़ा और इसे एक पूर्णांक मान में परिवर्तित कर दिया और इसे "theinteger" में संग्रहीत किया।
  • चूंकि मेरे पास "theinteger" में एक पूर्णांक है, इसलिए मैं इसे एक चरित्र के रूप में प्रिंट करना चाहता हूं लेकिन char thechar = char (theinteger); इरादे के रूप में काम नहीं करता है।

मैं गलत क्या कर रहा हूं?

+0

तो, आपका प्रोग्राम अभी क्या करता है? – Sam

+0

क्या यह 'std :: cout का उपयोग नहीं करना चाहिए;'? – Manuel

+0

मेरी गलती को ध्यान में रखते हुए धन्यवाद। मैंने गलत कोड देखा। इसे कुछ मिनटों में अपडेट कर देगा। – newbie

उत्तर

2

आप फ़ाइल से एक समय में एक char पढ़ रहे हैं। इसलिए, आपकी फ़ाइल है यदि:

2424 

आप पहली बार, फ़ाइल से चार "2" दिखाया जाएगा किसी पूर्णांक पर इसे वापस कनवर्ट करते हैं, और फिर एक चार, जो प्रिंट होगा "2" अदालत पर है। अगला दौर "4" प्रिंट करेगा, और इसी तरह।

आप पूर्ण संख्या के रूप में संख्या को पढ़ने के लिए चाहते हैं, आप की तरह कुछ करने की जरूरत है:

int theinteger; 
thestream >> theinteger; 
cout << char(theinteger) << endl; 
+0

ओह, मुझे यह मिल गया। ए (चार) अभिनेता एक एकल है। ओह मेरी गूंगा गलती के लिए। – newbie

6

आप चार से चार पढ़ रहे हैं, लेकिन तुम सच में (मुझे लगता है कि) अंकों के प्रत्येक अनुक्रम में पढ़ना चाहते हैं एक पूर्णांक के रूप में। , BTW पहला सवाल

int theinteger; 
while (thestream >> theinteger) 
{ 
    char thechar = char(theinteger); 
    cout << thechar << endl; 
} 

+1 एक बहुत ही अच्छी तरह से & स्वरूपित के लिए व्यक्त की: करने के लिए अपने पाश बदलें!

+0

हां, आप सही हैं, नील। मैं प्रत्येक नंबर को पूरी तरह से पढ़ना चाहता हूं। प्रत्येक नंबर अपनी लाइन पर है। क्या आप ऐसा कुछ करना चाहते हैं जैसे आप कुछ करने का इरादा रखते हैं लेकिन आप गलत आदेशों का उपयोग करते हैं? मुझे उम्मीद है कि इसका कोई अर्थ है। – newbie

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