2010-02-09 3 views
11

저는 C++를 처음 배우고 있습니다. 이전 프로그래밍 배경이 없습니다.C++ 혼란. 텍스트 파일에서 정수 읽기. ASCII로 변환

나는이 예를 보았습니다.

이 예는 의미가 있습니다. 정수와 그 ASCII 표현을 인쇄하십시오.

이제 이러한 값으로 텍스트 파일을 만들었습니다.

48 
49 
50 
51 
55 
56 
75 

"theFile.txt"라는 텍스트 파일을 읽고이 숫자를 ASCII 값으로 변환하려고합니다.

여기에 제가 작성한 코드가 있습니다.

#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"에 포함 된 정확한 데이터 형식을 알지 못합니다. 결과적으로, char로 데이터를 읽도록 선택해야합니다.
  • 파일의 각 자릿수를 char로 읽고 정수 값으로 변환하여 "theinteger"에 저장했습니다.
  • 나는 "theinteger"에 정수가 있기 때문에 문자로 인쇄하려고하지만 char = char (theinteger); 의도 한대로 작동하지 않습니다.

내가 뭘 잘못하고 있니?

+0

그럼, 현재 프로그램은 무엇을하고 있습니까? – Sam

+0

'std :: cout;'을 사용해서는 안됩니까? – Manuel

+0

내 실수를 알아 주셔서 고맙습니다. 나는 잘못된 코드를 제기했다. 몇 분 후에 업데이트 될 것입니다. – newbie

답변

2

파일에서 한 번에 하나의 char을 읽는 중입니다. 따라서, 파일이 포함되어있는 경우 :

2424 

가 먼저 cout을의 "2"를 인쇄하는 문자, 뒤쪽으로 int로 변환하고, 파일에서 문자 "2"로 표시됩니다. 다음 라운드에서는 "4"가 인쇄됩니다. 숫자의 각 시퀀스를 읽고 싶은

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

아, 알겠습니다. A (char) 배우는 단 하나뿐입니다. 오, 내 멍청한 실수. – newbie

6

당신은 문자로 문자를 읽고,하지만 당신은 정말 (내 생각) : 당신이 전체 숫자로 숫자를 읽으려면

, 당신은 같은 것을 할 필요가 정수로. BTW, 아주 잘 & 포맷에 대한

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

한 표현 첫 번째 질문 : 당신의 루프를 변경!

+0

네, 맞습니다, Neil. 각 번호를 완전히 읽으 려합니다. 각 번호는 자체 회선에 있습니다. 당신이 무언가를하려고하지만 잘못된 명령을 사용하는 것처럼 이것을 감독하는 것이 일반적입니까? 나는 그것이 의미가 있기를 바랍니다. – newbie