C# 및 C++가 모두 포함 된 코드로 파일에 액세스하고있었습니다.같은 파일 : 메모장에서 워드 패드를 열 때
그러나 워드 패드로 열 같은 파일은 각 옆에 (같은 하나 개의 정수를 찾습니다 : 파일을 메모장에서 열 경우는 다음과 같습니다 (왼쪽에서 하나의 정수와 숫자의 나머지는 두 배입니다)) 더블 :
왜 서로 다른 보이나요? 메모장과 워드 패드 파일을 읽기 위해 여러 가지 방법을 사용하기 때문에
C# 및 C++가 모두 포함 된 코드로 파일에 액세스하고있었습니다.같은 파일 : 메모장에서 워드 패드를 열 때
그러나 워드 패드로 열 같은 파일은 각 옆에 (같은 하나 개의 정수를 찾습니다 : 파일을 메모장에서 열 경우는 다음과 같습니다 (왼쪽에서 하나의 정수와 숫자의 나머지는 두 배입니다)) 더블 :
왜 서로 다른 보이나요? 메모장과 워드 패드 파일을 읽기 위해 여러 가지 방법을 사용하기 때문에
. Windows는 개행 문자가 두 문자 (\r\n
)로 구성되어있는 반면, 다른 운영 체제, 즉 유닉스 기반 문자는 \n
또는 \r
만 사용합니다. 워드 패드는 두 줄 바꿈 유형을 모두 인식 할만큼 똑똑하지만 메모장은 아닙니다.
Got corrected : 이제'\ n \ '대신'\ r \ n '을 사용했습니다. – user3405291
, apperantly이 파일은 ... 모두 다르게 읽을 수있는 방식으로 기록
그것은 개행 문자가 파일로 인코딩되는 방식과 관련이있다메모장 및 워크 패트 이해하기 때문에 \ 연구 \ n 다르게
메모장과 워드 패드 치료 "새로운 라인은"다른 - 하나 그냥 \n
받아들이는 또 다른 "새로운 라인을"(인식 \r\n
가 필요하며 일부는 \n\r
로 확인 될 것).
다른 많은 편집자에게도 마찬가지입니다. 나는. Visual Studio에서 파일을 열려고하면 "Unix 새 행을 Windows 새 행으로 변환 하시겠습니까?"와 같은 질문을하게됩니다.
당신은 C#을 사용 WriteLine
이 아닌 수동으로 \n
를 추가하거나 적어도 스트리밍 "새로운 라인"을 작성 Envirnment.NewLine을 사용하여 파일을 작성합니다.
마찬가지로 C++에서 메모장이나 그러한 시퀀스가 필요한 다른 편집기에서 파일을 열어야하는 경우 (대부분의 편집자/뷰어가 괜찮을 수도 있음) "\ n \"대신 "\ r \ n"을 쓸 수 있습니다.
왜 이것이 'C#'질문이라고 생각하십니까? 파일 내용의 16 진수 덤프를 제공 할 수 있습니까? – Sinatr
줄 끝이 잘못되었습니다. Windows에서 줄 끝은 유닉스 등에서'\ r \ n'이고 사과 시스템에서는'\ r'이어야합니다. 편집 : 사과의 시스템 정보를 수정했습니다. – lared
@Sinatr 파일은 C++로만 작성한 경우 (메모장 및 워드 패드에서 모두 동일하게 나타남) C 및 C++로 모두 액세스 한 후에 메모장 및 워드 패드에서 다르게 보입니다. 어떻게 헥스 덤프를 제공 할 수 있습니까? – user3405291