Появляются лишние символы при считывании текстового файла - 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';
Объяснение кода листинга программы
- В данном коде используется функция
strpos
, которая возвращает позицию первого вхождения подстроки в строку. - Значение
strpos
используется для присвоения символа '\0' (нулевой символ) в массивstr
. - В результате, в массиве
str
будет заменен первый символ подстроки на нулевой символ.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д