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

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

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

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

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

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

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

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

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


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

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

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы