Запись строки из файла в массив - 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.