2016-07-25 7 views
-1

특정 텍스트 문자열을 포함하는 file.txt가 있습니다. 문자열이서식 파일에서 텍스트를 문자 배열로 입력 했습니까?

먼저 내가 char *workingarray;

에 입력 텍스트를 fopen을하고 FREAD를 사용하여 수행 한 문자 배열로이 텍스트를 넣어 "0aj 0 \ \ xDfS2 \ 0dj"인용하지 않고, 말할 수 있습니다 내 문제는이 배열을 인쇄하는 형태로 제공됩니다.

xDfS2 
dj 

aj 

난 .. 내가 문자 배열의 문자를 인쇄 할 (printf와 사용),하지만 때마다 내가 그것을 새로운 라인에 가고 싶다 '\0'를 읽고 .. 그래서 workingarray의 출력이 될 것이다 이 '\0'로 \ 0 '을 첫 번째 볼 수 있지만하지 않기 때문에 지금이 작동하지 않습니다 .. 지금 방법으로 이러한 목표를 달성하기 위해

for(i=0; i <= length; i++) { 
    if(workingarray[i] = '\0') { 
     printf("\n"); 
    } else { 
     printf("%c", workingarray[i]); 
    } 
} 

을 시도 '\''0', 배열에있는 두 개의 필드와. 나는 또한 '\'을 사용하여 검색을 시도했는데 실제로는 이스케이프 시퀀스라는 사실을 보완하기 위해 '\\'을 사용했지만이 명령을 실행하면 세그먼트 분할 오류와 코어 벙어리가 발생합니다.

나는 또한 최초의 기반으로하지만 첫 번째에서 '\'를 받아 같이, 대신 처음에 어떤 0를 무시하고 두 번째에 그것을 '\0'을하는 제 2 배열을 시도했습니다.

int k = 0 
length = sizeof(workingarray); 

for(i=0; i <= length; i++) { 
    if(workingarray[i] = '\\') { 
     newarray[i-k] = '\0'; 
     k++; 
    } else if (workingarray[i] = '0') { 
     return; 
    } else { 
     newarray[i-k] = workingarray[i]; 
    } 
} 

짧은 이야기입니다.이 작업을 수행하는 방법을 잘 모르겠습니다. 어떻게 파일의 텍스트 문자열을 입력 할 수 있습니까? (그 파일의 특정 부분이 아닌 전체 파일) 문자열의 모든 \ 0에 대해 새로운 줄을 만드는 동안 그 문자열을 출력 할 수 있습니까? 당신이 실제 '\\' 대신 NUL의 배열 '0'이 다음 당신이에 대한 루프 대신 <=의에서 <를 사용할 필요가

for(i=0; i < length; i++) { 
    if(workingarray[i] == '\\' && workingarray[i+1] == '0') { 
     i++; 
     printf("\n"); 
    } else { 
     printf("%c", workingarray[i]); 
    } 
} 

참고도 수행하고 비교 ==를 사용할 필요가 있고 경우

+0

아마도 (for i = 0; i <길이; i ++)''<+'에서'<'로 for (i = 0; i <= length; – chux

+0

파일을 workingarray로 읽는 방법을 확인하는 것이 유익합니다. char * workingarray를 선언하고 곧바로 읽을 때 사용한다면, 메모리를 할당하지 않고 workingarray에 주소를 저장하면 오류가 발생할 수 있습니다. 또한 NULL 문자가 아닌 charater zero를 다시 확인하려고합니다. –

답변

3

아닙니다 =.

관련 문제