Появляются лишние символы при считывании текстового файла - 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будет заменен первый символ подстроки на нулевой символ.