Я очень новичок в 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
Вам не хватает кода для установки конечного нуля символ 'word'. Добавьте' word [counter] = '\ 0'; 'перед сбросом' counter'. –
Дерево @CIsForCoocckies - это глобальная переменная, и я сделал это, но я пытаюсь сделать так, чтобы он читал первый слово, которое является томом, а затем вставлять его в дерево, а затем читать второе слово и вставлять его в дерево, но после того, как я вставляю тома, слово не очищается, поэтому как бы я это сделал, чтобы он очистил массив, а затем ввел новый слово в массив символов той же длины 100. – code4life