저는 C가 매우 새롭습니다. 나는 알파벳 문자가 많이 포함 된 파일에서 단어를 읽으려고합니다. 내 입력 파일은 %tOm12%64ToMmy%^$$6
과 비슷하게 보이며 먼저 tom을 읽고 내 데이터 구조에 tom을 넣고 tommy를 읽고 내 데이터 구조에 모두 소문자로 넣으려고합니다. 이것은 지금까지 시도한 것입니다. 모든 다른 코드는 수동으로 매개 변수를 메서드에 보냈으므로 오류가 없습니다. 이것은 파일에서 단어를 읽으려고 시도한 것입니다. 단어는 최대 100 자까지 가능합니다. 누군가가 논리와 아마도이 코드를 이해하도록 도와 줄 수 있습니까? 나는 매우 잃어버린 것입니다. 감사합니다!C의 텍스트 파일에서 단어 단위로 단어 읽기
void read(FILE *fp)
{
FILE *fp1 = fp;
char word[100];
int x;
int counter = 0;
while ((x = fgetc(fp1)) != EOF)
{
if (isalpha(x) == 0)
{
insert(&tree,word);
counter = 0;
}
if (isalpha(x) != 0)
{
tolower(x);
word[counter] = x;
counter++;
}
}
rewind(fp1);
fclose(fp1);
}
트리 변수는 여기에 정의되어 있지 않으므로 설명을해주어야합니다. 두 번째 문자 배열은 '\ 0'으로 끝나야하므로 "char word [101]"로 만들고 "word [++ counter] = '\ 0'로 끝내야합니다. – CIsForCookies
종료 널 '단어'의 문자를 추가합니다. 'counter'를 재설정하기 전에'word 'counter'= '\ 0';을 추가하십시오. –
@CIsForCoocckies 트리는 전역 변수입니다.하지만 그렇게했습니다. Tom이라는 단어를 트리에 삽입 한 다음 두 번째 단어를 읽고 트리에 삽입합니다.하지만 tom을 삽입하면 단어가 지워지지 않습니다. 그래서 어떻게하면 배열을 지우고 새로운 같은 100 길이의 문자 배열에 단어 – code4life