Сначала заметка об этом, это не полное решение, но я думаю, что оно поможет вам в разборе файла. Также вместо
сохранить их в массив, например int process[10]
Я думаю, что было бы лучше хранить их в динамическом массиве, иначе вам нужно было бы заранее знать номера строк столбца, который вы пытаетесь извлечь. Этот код только анализирует файл с учетом вашего формата и печатает значения первого столбца, я думаю, его можно адаптировать к вашей ситуации после того, как вы реализуете динамический массив, вот он:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
/*scan_file: read each of the lines of the file.*/
int scan_file(char *filename)
{
char *line_buf = NULL;
size_t line_buf_size = 0;
ssize_t line_size;
char *next = NULL;
FILE *fp = fopen(filename, "r");
if (!fp) {
fprintf(stderr, "Error opening file '%s'\n", filename);
return 1;
}
/*Get the first line of the file and do nothing with it*/
line_size = getline(&line_buf, &line_buf_size, fp);
while (line_size > 0)
{
//second and subsecuent lines
line_size = getline(&line_buf, &line_buf_size,fp);
if (line_size <= 0)
break;
line_buf[line_size-1] = '\0'; /*removing '\n' */
char *part = strtok_r(line_buf, " ", &next);
if (part)
printf("NUMBER: %s\n", part);
}
// don't forget to free the line_buf used by getline
free(line_buf);
line_buf = NULL;
fclose(fp);
return 0;
}
int main(void)
{
scan_file("file.txt");
return 0;
}
ПРИМЕЧАНИЕ. Здесь я предполагаю, что файл называется file.txt
, вы должны изменить его на имя вашего файла.
ВЫВОД:
NUMBER: 1
NUMBER: 2
NUMBER: 3
NUMBER: 4
NUMBER: 5
NUMBER: 6
NUMBER: 7
NUMBER: 8
NUMBER: 9
NUMBER: 10
Я поставил это таким образом, чтобы вы могли идентифицировать строку printf("NUMBER: %s\n", part);
, здесь вы можете изменить ее на что-то, что поместит это значение в динамический массив.
person
Gealber
schedule
30.11.2020