Появляются лишние символы при считывании текстового файла - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день. Необходима помощь, имеется текстовый файл, в котором содержится информация о том или ином продукте: название, стоимость, материал... Все это разбито в файле при помощи символа "|", чтение из файла производится "вроде как" правильно. Но при разбивании на отдельные части в программе после всего появляются лишние символы: яшки, середечки, и тому подобная диковина...
void ReadFromFile(char FileName[])
{
    char str[500];
    int strpos = 0;
    char *buf;
    FILE * f = fopen(FileName, "r");
    if(!f) printf("File not found!"), exit(1), getch();
    while((str[strpos] = getc(f)) != EOF)    
    {
        printf("%c", str[strpos]);
        strpos++;
    }
    for(buf = strtok(str, "|"); buf != NULL; buf = strtok(NULL, "|"))
    {
        printf("\n\n%s", buf);
    }
    fclose(f);
}

Решение задачи: «Появляются лишние символы при считывании текстового файла»

textual
Листинг программы
str[strpos] = '\0';

Объяснение кода листинга программы

  1. В данном коде используется функция strpos, которая возвращает позицию первого вхождения подстроки в строку.
  2. Значение strpos используется для присвоения символа '\0' (нулевой символ) в массив str.
  3. В результате, в массиве str будет заменен первый символ подстроки на нулевой символ.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы