특정 텍스트 문자열을 포함하는 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]);
}
}
참고도 수행하고 비교 ==
를 사용할 필요가 있고 경우
아마도 (for i = 0; i <길이; i ++)''<+'에서'<'로 for (i = 0; i <= length; – chux
파일을 workingarray로 읽는 방법을 확인하는 것이 유익합니다. char * workingarray를 선언하고 곧바로 읽을 때 사용한다면, 메모리를 할당하지 않고 workingarray에 주소를 저장하면 오류가 발생할 수 있습니다. 또한 NULL 문자가 아닌 charater zero를 다시 확인하려고합니다. –