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