2008-11-10 3 views
2

C++에서 char에 넣을 수있는 ascii 값이 있나요? 나는 0을 시도했으나 그것을 읽을 수 없도록 내 파일을 망쳐 버렸다.Nothing에 대한 ASCII 값

답변

1

null 문자 '\ 0'은 여전히 ​​바이트를 차지합니다.

소프트웨어가 Null 문자를 파일 끝 문자로 인식합니까?

소프트웨어가이 파일을 읽는 경우 장소 소유자 문자 (데이터와 같지 않음)를 정의 할 수 있지만 해당 문자도 처리해야합니다. 에서처럼, '*'는 귀하의 플레이스 홀더입니다. 캐릭터를 읽지 만 데이터를 저장하는 구조에는 추가하지 않습니다. 파일에서 여전히 공간을 차지하지만 데이터 구조에서 공간을 차지하지 않습니다.

질문에 대답하거나 누락 되었습니까?

1

실제로 파일을 변경하지 않을 수있는 값을 쓸 수 있습니까? 대답은 아니요입니다.

달성하려는 작업에 대해 조금 더 게시 할 수 있습니다.

0

파일의 종류와 구문 분석자에 따라 다릅니다.

3

확실히. 일반 데이터에 나타나지 않는 문자 값을 사용하십시오. 이것을 일반적으로 구분 된 텍스트 파일이라고합니다. 구분 기호로는 공백, 탭, 쉼표, 세미콜론, 세로 막대 문자 및 물결표가 널리 사용됩니다.

6

ASCII 0은 null입니다. 그 외에는 전통적인 ASCII에는 "아무것도"문자가 없습니다. 적절한 경우 SOH (머리글 시작), STX (텍스트 시작) 또는 ETX (텍스트 끝)와 같은 제어 문자를 사용할 수 있습니다. ASCII 값은 각각 1, 2 및 3입니다.

나는이 explaination에 사용되는 ASCII 코드의 전체 목록은 '\ 0'0 바이트를 대표하는 C++ 소스 파일에서 this site

3

를 참조하십시오. 그러나 C++ 문자열은 일반적으로 null로 끝납니다. 즉 '\ 0'은 문자열의 끝을 나타냅니다. 이는 파일을 엉망으로 만들 수 있습니다.

데이터 파일에 실제로 0 바이트를 저장하려면 다른 인코딩을 사용해야합니다. 단순한 문자는 데이터에 표시되지 않는 다른 문자 (예 : 0xFF) 또는 일부 길이/데이터 형식 또는 유사한 문자를 사용합니다.

사용하려는 인코딩에 관계없이 파일을 쓰는 응용 프로그램과 읽은 내용 중 인코딩이 무엇인지 동의해야합니다. 그리고 그것은 완전히 새로운 악몽입니다.