#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 256
// 구조체정의
void main(void){
FILE *fp;
char buf[MAX];
struct sample *head, *tmp, *tail;
fp = fopen("test.c","r");
if(fp == NULL){
printf("file not found");
exit(1);
}
// 연결리스트 초기화
head = NULL;
// 파일의 끝을 만날때 까지 한 라인씩 읽어 buf 배열에 저장
while(fgets(buf,MAX,fp) != NULL){
tmp = (struct sample*)malloc(sizeof(struct sample));
strcpy(tmp->line, buf);
#include <string.h>
#include <stdlib.h>
#define MAX 256
// 구조체정의
struct sample{
char line[MAX];
struct sample *next;
};
char line[MAX];
struct sample *next;
};
void main(void){
FILE *fp;
char buf[MAX];
struct sample *head, *tmp, *tail;
fp = fopen("test.c","r");
if(fp == NULL){
printf("file not found");
exit(1);
}
// 연결리스트 초기화
head = NULL;
// 파일의 끝을 만날때 까지 한 라인씩 읽어 buf 배열에 저장
while(fgets(buf,MAX,fp) != NULL){
tmp = (struct sample*)malloc(sizeof(struct sample));
strcpy(tmp->line, buf);
// 생성된 노드에 연결
if(head == NULL)
head = tmp;
else // head가 NULL이 아니면, 마지막(taill) 에 노드연결
tail->next = tmp;
tail = tmp; //tmp 가 마지막 노드 이므로 tmp가 tail이 됨
tail->next = NULL; // tail 의 다음 노드는 없으므로 NULL
} // end of while
close(fp);
// 연결 리스트에 접근
tmp = head;
// 다음 노드가 NULL 일때 까지 반복
while(tmp->next !=NULL){
printf("%s", tmp->line);
// 다음 노드로 이동
tmp = tmp->next;
} // end of while
free(tmp);
if(head == NULL)
head = tmp;
else // head가 NULL이 아니면, 마지막(taill) 에 노드연결
tail->next = tmp;
tail = tmp; //tmp 가 마지막 노드 이므로 tmp가 tail이 됨
tail->next = NULL; // tail 의 다음 노드는 없으므로 NULL
} // end of while
close(fp);
// 연결 리스트에 접근
tmp = head;
// 다음 노드가 NULL 일때 까지 반복
while(tmp->next !=NULL){
printf("%s", tmp->line);
// 다음 노드로 이동
tmp = tmp->next;
} // end of while
free(tmp);
Blog2Book "임베디드 프로그래밍 C 코드 최적화" 중에서 ...
댓글 없음:
댓글 쓰기