이 파일에는 dictionary1.txt라는 파일이 있습니다. 발음 바로 옆에. 내가하고 싶은 일은 각 줄에서 첫 단어를 가져 와서 프로그램이 처음부터 만드는 다른 txt 파일에 인쇄하는 것입니다. 내 코드는 그렇지만 영어 단어 사이에 임의의 한자를 인쇄하기 때문에 그 이유를 모르겠습니다. 여기 .txt 파일에서 각 행의 첫 단어를 가져 와서 그 단어를 다른 .txt 파일에 인쇄하는 방법 : 일종의 종류도 있지만 임의의 문자도 인쇄
는 OUPUT 파일이 모습입니다 같은 : https://imgur.com/a/pZthP(발음은이 dictionary1.txt에 blankspace 각 라인의 실제 단어에서 구분되는)
내 코드 :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char line[100];
int i = 0;
FILE* fp1 = fopen("dictionary1.txt", "r");
FILE* fp2 = fopen("dictionary2.txt", "w");
if (fp1 == NULL || fp2 == NULL){
printf("ERROR");
return -1;
}
while (fgets(line, 100, fp1) != NULL){
while (line[i] != ' '){
fputc(line[i], fp2);
i++;
}
i=0;
fputc('\0', fp2);
}
return 0;
}
나는 fputc ('\ n', fp2)도 시도했는데, 처음부터 새로 만든 파일의 다음 줄로 갈 수 없다. 나는 또한 모든 임의의 한자를 제거 할 수 없다.
편집 : 알아 냈습니다. 작업중인 .txt 파일이 유니 코드 형식으로 저장되어 프로그램에서 제대로 작동하지 않았습니다. 나는 그것을 ANSI로 바꿨고 지금은 매력처럼 작동합니다.
당신의 프로그램은 ('fputc ('\ 0', fp2)'를'fputc ('\ n', fp2)'로 바꾸고 나면) 나는 개줄을 검사했다. 내가 생각할 수있는 유일한 것은 입력 라인에 처음 100 자의 공백이 들어 있지 않아서 버퍼 오버플로가 발생하고 출력 파일에서 임의의 가비지가 발생한다는 것입니다. – redxef
광산이 작동하지 않습니다. 더 작은 .txt 파일로 테스트 한 결과 작동했습니다. 거대한 사전에서 실행할 때 단어 사이에 임의의 문자가 인쇄됩니다 ... –