안녕하세요 여러분,이 문제에 대한 해결책을 찾으려고 두 번째 주말에 있습니다. 저는 C 프로그래밍에 익숙하지 않고 텍스트 파일의 각 개별 라인을 읽고 각 변수를 자신의 변수에 전달하려고했습니다. 여기서 변수를 조작 할 수 있습니다 (예 : 비교, 계산 등).텍스트 파일의 각 줄을 각각의 개별 변수로 읽는 방법
#include <stdlib.h>
#include <stdio.h>
struct line_reader {
FILE *f;
char *buf;
size_t siz;
};
void
lr_init(struct line_reader *lr, FILE *f)
{
lr->f = f;
lr->buf = NULL;
lr->siz = 0;
}
char *
next_line(struct line_reader *lr, size_t *len)
{
size_t newsiz;
int c;
char *newbuf;
*len = 0;
for (;;) {
c = fgetc(lr->f);
if (ferror(lr->f))
return NULL;
if (c == EOF) {
if (*len == 0)
return NULL;
else
return lr->buf;
} else {
if (*len == lr->siz) {
newsiz = lr->siz + 4096;
newbuf = realloc(lr->buf, newsiz);
if (newbuf == NULL)
return NULL;
lr->buf = newbuf;
lr->siz = newsiz;
}
lr->buf[(*len)++] = c;
if (c == '\n')
return lr->buf;
}
}
}
void
lr_free(struct line_reader *lr)
{
free(lr->buf);
lr->buf = NULL;
lr->siz = 0;
}
int
main()
{
struct line_reader lr;
FILE *f;
size_t len;
char *line;
f = fopen("file.txt", "r");
if (f == NULL) {
perror("foobar.txt");
exit(1);
}
lr_init(&lr, f);
while (line = next_line(&lr, &len)) {
fputs("1: ", stdout);
fwrite(line, len, 1, stdout);
}
if (!feof(f)) {
perror("next_line");
exit(1);
}
lr_free(&lr);
return 0;
}
:나는 각각의 라인을 읽을 수있는 코드를 가지고 있지만, 여기 변수의 각 줄에 전달하는 방법을 확실하지 오전 코드입니다
도움이 될 것입니다.