2012-08-07 3 views
1

저는 C++로 매우 경험이 없지만 도움이 될 수 있습니다. 외부 .txt 파일에서 한 줄을 읽고 16 진수 값을 짧은 int에 쓰는 작은 함수를 작성하려고합니다.외부 파일에서 문자열 줄을 읽고 16 진수로 변환

예 :

라인 외부 텍스트 파일에서 읽을

: 7c00

코드 :

짧은 end_addr = 0x7c00

이미 외부 파일에서 라인을 읽을 수있는 코드가, 문자 정보 (7c00)를 짧은 end_addr에 16 진수 0x7c00으로 저장하는 방법을 알아야합니다.

너무 많은 문자 (예 : 7c0010) 또는 잘못된 문자 (예 : zyx4)가 있으면 오류가 발생하지만 실제로는 변환 알고리즘에 대한 도움이 필요합니다. 지금. 어떤 도움을 주셔서 감사합니다!

답변

0

간단한 인터페이스와 적절한 오류 처리를 위해 boost::lexical_cast을 살펴볼 것을 제안합니다.

이 코드는 오류를 처리하지 않지만 전체 줄을 읽었 음을 확인하여 오류 처리를 추가 할 수 있습니다.

#include <iostream> 
#include <fstream> 

int main() 
{ 
    std::ifstream f("some_file"); 
    short x; 
    f >> std::hex >> x; 
    std::cout << "Hexadecimal value: " << std::hex << x << std::endl; 
    std::cout << "Decimal value: " << std::dec << x << std::endl; 
} 

설명 std::hex in C++ reference 그래서 std::hex 변화는 16 숫자 기수 기본 및 std::dec는 10

+0

감사로 다시 변경! 내 코드를 약간 수정했고 잘 작동했습니다! – DevynB