2013-10-14 5 views
1

질문이 너무 깁니다. 여기에 해결책이 있습니다.Windows에서 다른 문자열 길이는 파일에서 리눅스 입력이지만 stdin strcmp는 작동하지 않습니다

솔루션 :

같은 \ n 또는 다음 \ r에 문자열 (숯불 * 형)을 반복 당신이 나오기 전까지 하나의 \ R 또는 특수 문자없이 그냥 '라인을 얻으려고 노력 \ n을 사용하면 Windows와 다른 Linux 컴퓨터간에 약간의 상호 호환이 가능합니다.

가능한 코드 :

for (i = displacement; i < strlen(line) && line[i] != '\r' && line[i] != '\n'; i++) { 
    newString[i - displacement] = line[i]; 
} 

답변

1

파일에서 읽기는 fgets (이것은 포함)의 \ n 개의 줄 끝까지 읽습니다.

Windows에서는 텍스트 파일에서 읽은 행이 \ r \ n로 끝납니다.

유닉스에서는 텍스트 파일에서 읽은 행이 \ n로 끝납니다.

Windows에서는 fgets가 읽는 문자열이 1 바이트 길어질 것으로 예상됩니다.

+0

편집 1을 참조하십시오. 문자열의 첫 번째 부분이 엉망이고 문자열의 두 번째 부분이 나타나지 않는 것처럼 보입니다. – donkon