블로그 이미지
하루, 글. 그림. 영상매체. 표현을 도와주는 기기들. 도전 중. 동화다아아
    동화다아아

    카테고리

    분류 전체보기 (176)
    잡담 (1)
    IT 기기-리뷰&뉴스 (7)
    리뷰 - 도서 (1)
    리뷰 - 영상 (0)
    리뷰 - 그림/음악 (1)
    내장형 하드웨어 (163)
    Total
    Today
    Yesterday
    - 반복문을 이용한 연결리스트의 작성

    /* 데이터 파일로부터 데이터를 읽어와서 연결리스트를 작성하는 프로그램. 데이터 파일은 문자 'a', 'b', 'c'로 구성되어 있다고 가정한다. */

    #include<stdio.h>
    #include<stdlib.h>

    typedef struct node
    {
            
    char data;
            
    struct node *next;
    }NODE;

    int main()
    {
            FILE *fp;
            NODE *temp 
    = NULL, *list = NULL;
            
    char ch;

            
    if((fp = fopen("d10-5.dat""r")) == NULL)
            {
                    printf(
    "file open error!\n");
                    
    return -100;
            }
            fscanf(fp, 
    "%c"&ch);
            
    while(!feof(fp))
            {
                    temp 
    = (NODE *)malloc(sizeof(NODE));
                    temp -
    > data = ch;
                    temp -
    > next = list;
                    list 
    = temp;
                    fscanf(fp, 
    "%c"&ch);
            }
            fclose(fp);
            temp 
    = list;
            
    while(temp != NULL)
            {
                    printf(
    "%5c", temp -> data);
                    temp 
    = temp -> next;
            }
            printf(
    "\n");
            
    return 0;
    }

    ⇒ 실행 결과         

     



    #include<stdio.h>
    #include<fcntl.h> //o_flag
    #include<sys/types.h> // pmode
    #include<sys/stat.h> // pmode
    #include"NODE.h"

    int main()
    {
            
    int ifd;
            
    int iCount;
            NODE sttemp[
    5];
              
            ifd 
    = open("a.dat", O_CREAT|O_WRONLY|O_TRUNC);
            
    if(ifd < 0)
            {
                    printf(
    "Can't open file a.dat\n");
                    
    return -100;
            }
            
    for(iCount = 0; iCount < 5; ++iCount)
            {
                    printf(
    "sttemp값을 입력하세요: ");
                    scanf(
    "%d"&sttemp[iCount].iNum);
                    write(ifd, 
    &sttemp[iCount], sizeof(NODE));
            }
            printf(
    "sttemp 크기 %d\n"sizeof(sttemp));
            
            close(ifd);
     
            
    return 0;
    }




    #include<stdio.h>
    #include<stdlib.h>
    #include<fcntl.h>
    #include<sys/types.h>
    #include<sys/stat.h>
    #include"NODE.h"

    int main()
    {
            
    int ifd;
            
    int iret;
            
    int iCount;
            NODE *stpNode;
            NODE *stpHead;

            ifd 
    = open("a.dat", O_RDONLY);
            
    if(ifd < 0)
            {
                    printf(
    "Can't open file a.dat\n");
                    
    return -100;
            }
            stpNode 
    = (NODE *)malloc(sizeof(NODE)); 
            
    if(stpNode ==  NULL)
            {
                    free(stpNode);
                    printf(
    "Can't stpNode\n");
            }
            iret 
    = read(ifd, stpNode, sizeof(NODE));
            stpNode -
    > next = 0;
            
    if(iret == 0)
            {
                    printf(
    "파일에 내용이 없습니다.\n");
                    
    return -1;
            }
            
    else
            
    {
                     stpHead 
    = stpNode;
            }
            
    ///////////////////////////////////////////
            
    for(iCount = 0; iCount <4; ++iCount)
            {
                    stpNode 
    = (NODE*)malloc(sizeof(NODE)); 
                    
    if(stpNode ==  NULL)
                    {
                            free(stpNode);
                            printf(
    "Can't stpnode\n");
                    }
                    iret 
    = read(ifd, stpNode, sizeof(NODE));
                    
    //stpNode -> next = 0;
                    
    if(iret == 0)
                    {
                            printf(
    "파일에 내용이 없습니다.\n");
                            
    return -1;
                    }
                    
    else
                    
    {
                            stpNode -
    > next = stpHead;
                            stpHead 
    = stpNode;
                    }
            }
            close(ifd);

            
    while(NULL != stpHead)
            {
                    printf(
    "%d -> ", stpHead->iNum);
                    stpHead 
    = stpHead -> next;
            }
            printf(
    "\n");

            
    return 0;
    }

    ⇒ 출력 결과         

     

    Posted by 동화다아아
    , |

    최근에 달린 댓글

    최근에 받은 트랙백

    글 보관함