Запись строки из файла в массив - C (СИ)
Формулировка задачи:
Здравствуйте. Помогите в простой задачке.
Нужно из файла найти строку по части введенного имени и записать эту строку в массив. строка определённого формата.
Пример:
Файл 1.txt >
Мясо = 100
Яйца = 250
при вводе слова мясо нужно в массив отдельно записать в первый элемент "мясо" во второй "100"
проблему решил, но посимвольно, а мне нужно именно строку разделить на части до и после равно и записать в массив...
подскажите что не так? выводит все время первый элемент строки...
на правах Up
Со строкой и первым элементом разобрался. Как от имеющейся строки отнять другую строку.
Пример:
Васе 10 лет
есть часть строки "Васе"
как получить строку "10 лет"?
общительные все...
#include <stdio.h> #include <string.h> #include <conio.h> int main() { FILE * fp; char * delimiters=" ;"; char str[100], *result, *str_ffile; char * file = "D:/full_ccal.txt"; fp = fopen( file, "r" ); str_ffile = fgets( str, 100, fp ); int len = strlen( str_ffile ); int pos=0; while(len>pos) { result = strtok(str_ffile, delimiters); pos = pos + strlen( result ) + 1; if( *result ) { printf( " | %s", result ); result += strlen( result ) + 1; } } fclose( fp ); }
Решение задачи: «Запись строки из файла в массив»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <conio.h> int main(){ FILE * fp; char * delimiters="vase"; char str[100], *result; char * file = "full_ccal.txt"; fp = fopen( file, "r" ); fgets( str, 100, fp ); result = strstr(str, delimiters); result+=strlen(delimiters); if(result ) printf( "%s", result ); fclose( fp ); getch(); }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и строками.
- Объявление переменных:
- fp - указатель на файл, который будет открыт для чтения;
- delimiters - строка-разделитель, используемая для разделения данных в файле;
- str - массив символов, в который будет записана строка из файла;
- result - указатель на подстроку в массиве str, которая будет обрезана и выведена на экран.
- Открытие файла с помощью функции fopen. Файл будет открыт для чтения (режим
r
). - Чтение строки из файла с помощью функции fgets в массив str.
- Поиск строки-разделителя в массиве str с помощью функции strstr.
- Обрезка подстроки, начиная с найденного разделителя и до конца строки.
- Закрытие файла с помощью функции fclose.
- Ожидание нажатия клавиши с помощью функции getch.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д