소희짱
Bronze개인인증
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 9
검색어 입력폼
  • [디지털신호처리][DSP] 디지털 필터 설계(LPF,버터워스,체비셰프,백색잡음 등)
    O HUI’s Ads Planning Digital Filter 디지털 신호처리 Contents. IIR Butterworth LPF 03 목적 01 1 차 저역통과필터 구현 04 Filter 란 ? 02 백색소음 05 디지털 신호처리 고찰사항 06 목적 01 Filter 가 무엇인지 알고 , 디지털 필터를 설계해 본다 . 디지털 신호처리 Filter 란 ? 02 필터 는 입력되는 신호의 주파수 , 위상 , 진폭 중에서 특정한 범위 내의 주파수를 갖는 신호를 추출하거나 제거한다 . 디지털 신호처리 디지털 필터 는 특정한 성질의 결과를 얻기 위해서 이산신호를 처리하는 장치나 알고리즘을 말한다 . 필터 계수 값을 적절히 변경 시킴으로써 필터의 특성을 쉽게 수정할 수 있다 . 아날로그 필터 와 차이점 R, L, C 회로망이나 능동 회로에 의한 아날로그 필터에 비해 수치 계산에 의해 얻어지므로 정밀도가 높은 신호를 얻을 수 있다 . DAC DIGITAL 회로 ADC Input Output 저역 통과 필터 (LPF) Filter 란 ? 02 디지털 신호처리 고역 통과 필터 (HPF) 대역 차단 필터 (BF) 대역 통과 필터 (BPF)
    공학/기술| 2018.05.01| 18페이지| 2,500원| 조회(743)
    미리보기
  • [리눅스] 채팅창 구현 및 파일 전송 프로그램
    Embedded OS-PJ3-제출일: 2017년 12월 22일01코드(서버, 클라이언트)02접속 방법03실습결과04고찰사항05참고문헌Project#3 P2P File Transfer01. 코드서버파일 전송할 때 쓰이는 서버는 project2와 코드가 동일하므로 따로 설명을 넣지 않았습니다.설명은 project2 보고서에 상세하게 적어뒀습니다.클라이언트하나의 클라이언트가 파일요청, 즉 메시지에 /file이라 적을 때 새로운 소켓을 생성하여요청한 클라이언트는 새로운 클라이언트, 요청을 받은 클라이언트는 새로운 서버가 되도록 동작한다.코드의 앞부분은 project2의 코드와 동일하므로 새로 적힌 코드 부분만 설명했습니다.설명이 되어있지 않은 앞부분에 대한 설명은 역시 project2 보고서에 상세하게 적어뒀습니다.서버 102와 103 모두 비슷한 코드이므로 우선 103에 대해 설명하겠습니다.[103 코드]여기서 프로젝트2와 달라진 코드가 있다면 14열에 파일 리스트를 저장하고24열에 매크로 함수를 통해서 P2PFILE, 즉 클라이언트가 file을 요청할 때 쓸 수 있는 문자열을 정의하였다.(이전 프로젝트2 코드와 변함이 없는 부분.)FD_ISET함수의 첫 번째 인수가 0이기 때문에 키보드로부터 입력받는 문자열을 비교한다.클라이언트가 보내는 문자열이 P2PFILE, 즉 /file일 경우 (strstr함수를 통해 비교->틀리면 NULL 반환)파일을 요청하는 쪽이 새로운 클라이언트가 되어야하므로 클라이언트 소켓을 생성한다.우선 서버가 될 상대 클라이언트가 문자열을 받고 소켓을 생성해야 되는 시간을 고려하기 위하여sleep(1) 함수를 이용해 1초 간 쉬었다.108~114 : 새로 소켓을 생성할 때 사용할 각종 변수와 문자열을 저장할 버퍼와몇 번을 선택했는지 확인할 변수 select와 파일 구조체를 사용하여 fp2를 선언한다.116~133 : 이전 소켓 생성, 커넥트와 동일141 : 파일리스트를 클라이언트 창에 띄운다.원하는 파일 번호를 scanf로 입력받고 select 변수에 저장한 뒤 send()함수를 통해새로운 서버 소켓에다가 보낸다..148 : buffer2에 새로운 서버로부터 받은 내용을 저장한다.151~165 : strcmp() 함수를 통해 select에 저장된 숫자가 동일한 부분을 찾는다.(동일할 경우 0을 출력) 동일하며 fp2를 사용하여 각 숫자에 맞는 파일을 오픈한다.만약 1~3 외에 다른 숫자를 선택할 경우 잘못 입력됐다는 경고문과 동시에 프로그램을 종료한다.167 : fprintf()를 통해 fp2에 buffer2의 내용, 즉 새로운 서버가 보낸 파일의 내용을 저장한다.170~180 : 다운로드가 완료됐기 때문에 성공했다는 문자열과 받은 내용을 확인할지 물어본다.만일 열람할 경우 YES를 출력하고 fgets()를 이용하여 fp2의 내용을 읽어들어와 printf를 통해화면에 뿌린다.NO나 그 외에 다른 문자열이 입력되면 열람하지 않겠다는 의미로 받아들인다.182~183 : 파일을 클로즈하고 새로운 클라이언트의 소켓을 클로즈한다.다른 키보드, 즉 서버로부터 입력을 받는 부분으로 project2와 코드 동일.서버로부터 입력을 받을 때, 즉 다른 클라이언트가 파일을 요청하는 것이므로 /file이라는 문자열은받은 클라이언트는 서버가 된다.202 : strstr()함수를 통해 서버로부터 받은 입력이 /file인지 확인한다. 만일 아닌 경우 NULL을 반환.206~216 : 서버 소켓과 클라이언트 소켓, 그 외 내용을 받을 버퍼와 숫자 선택을 가늠할 변수 select,파일 구조체를 통해 fp3을 생성한다.이하 설명 생략 (프로젝트1에서 다뤘던 부분)recv()함수를 이용해서 새로운 클라이언트가 보낸 선택한 숫자가 무엇인지 변수 select1에 저장한다.strcmp()를 통해 숫자가 몇 번인지 구분하고 각 숫자에 맞는 파일을 오픈한다.만일 1~3 외에 다른 문자가 입력되면 잘못 입력했다는 말과 동시에 프로그램을 종료한다.284~288 : 파일 열기에 오류가 생긴 경우 프로그램을 종료하는 조건문이다.이 부분에서 자꾸 에러가 나서 조건문을 걸어 두었다. 자세한 내용은 고찰사항에서 다루겠다.289~304 : fgets()를 통해 fp3의 내용을 가져오고 puts()함수를 통해 화면에 뿌린다.fp3의 내용을 buffer에 복사하고 send()함수를 통해 새로운 클라이언트 소켓에 보낸다.모든 기능이 수행되었으면 파일을 닫고, 클라이언트 소켓과 서버 소켓을 모두 닫아 채팅창에 복귀한다.101번 코드도 103번과 매크로 함수 정의나 변수만 다를 뿐, 코딩 내용은 동일하기 때문에따로 설명은 안 하고 코딩만 올리겠습니다.[101 코드]02. 접속방법서버 : ./s1 4322 (이전과 동일)클라이언트 : ./2 220.149.128.102 4322 user1 passwd1 후 /file 입력03. 실행결과서버클라이언트[user1의 파일 리스트] :[user2의 파일 리스트] :[user1]파일 요청을 하고 받은 내용을 확인할 경우 요청한 파일의 내용이 제대로 떳다.[user2]user2는 열람을 하지 않았고 원하는 파일을 잘 받는 것을 확인하였다.파일을 주고받은 이후에도 따로 ctrl+c나 /exit 종료 문자열을 통해 종료를 하지 않는 이상채팅을 다시 할 수 있다.[파일 목록에 없는 번호를 요청할 경우]잘못 입력됐다는 경고문과 함께 채팅을 종료한다.04. 고찰사항원래는 리스트를 새로운 서버 쪽에서 생성하여 새로운 클라이언트 쪽에 전송을 하려고 했는데send() recv() 함수가 중간에 공백 또는 n이 있는 곳을 인식하여 이 전까지만 문자열을 보내고 이후 문자열은 무시를 해버려서 그렇게 하지 못하였다. (중간에 주석처리 되어 있는 부분)지금은 클라이언트가 2개이고 어떤 클라이언트가 새로운 서버가 되고 새로운 클라이언트가 될지 알기 때문에 손쉽게 관리하였지만 나중에 클라이언트가 무수히 많아질 때는 관리가 어렵다는 단점이 있다.클라이언트 코드에서 284~288에 있는 조건문은 처음에 클라이언트가 선택한 번호를 받을 때strcmp함수를 계속 if문으로 받았기 때문에 자꾸 파일을 열 때 오류가 났다.이는 else if문으로 바꾸니 손쉽게 해결이 되었다.
    공학/기술| 2018.05.01| 19페이지| 3,000원| 조회(841)
    미리보기
  • [리눅스] 채팅창 구현(서버, 다중 클라이언트)
    Embedded OS-PJ2-제출일: 2017년 12월 22일01코드(서버, 클라이언트)02접속 방법03실습결과04고찰사항05참고문헌Project#2 Group Chatting01. 코드서버채팅 서버는 클라이언트가 채팅에 참가하면 채팅 참가리스트에 추가하고,채팅에 참가하고 있는 다른 클라이언트가 보내는 메시지를 다시 다른 채팅 참가자에게 보내는역할을 한다. 즉, 하나의 프로세스가 여러 클라이언트와의 통신을 담당한다.클라이언트의 요청을 받아들이기 위해 이번에는 fork()를 사용하는 게 아니고fd_set 구조체를 이용한 select()함수를 사용하였다.1~9 : printf, file, socket, error 등 각각 필요한 헤더 파일을 포함시킨다.11~25 : 매크로 함수를 사용한 정의 구문. listen()함수에 쓰일 백로그와 사용자의 아이디와로그인을 성공했을 때와 실패했을 때의 아이디, BufferSize를 정의한다.23열은 최대 소켓 수이고 여기서는 2개의 소켓만 쓰일 예정이다.25열은 채팅방을 나갈 때 입력받는 문자열을 정의해 두었다.28 : 현재 소켓 번호 중 가장 큰 값을 구하기 위한 함수 설정30 : 채팅에 참가한 소켓번호 목록이다.31 : 채팅 참가자의 수를 판별하며 0으로 초기화한다.35 : 처음에 화면을 clear 시킨다.37~47 : 각종 변수 선언. (소켓, id, pw, 메시지를 받은 버퍼 등등)49 : 읽기상태 변화를 감지할 소켓을 지정한다.50 : 최대 소켓 번호 크기 + 153~57 : 처음에 실행할 때 사용법이 틀리면 사용법을 알려주기 위한 조건문이다.(이하 소켓 생성부터는 project1 과제와 같다.)이때 PF_INET은 프로토콜 체계이고 AF_INET은 주소 체계이므로 소켓을 생성할 때는PF_INET을 사용하고 struct sockaddr_in 구조체에 주소 체계를 넣을 때는 AF_INET을사용하는 것이 바람직하다.81 : maxfdp1은 최대소켓 번호 크기 + 1 이므로 sockfd에 1을 더해준다.90 : read_fds의 모든 소켓을 0으로 초기화한다.91 : 초기소켓을 선택한다.94~95 : 모든 클라이언트 접속 소켓을 선택한다. 그리고 maxfdp1을 재계산한다.97~101 : select함수를 호출한다. 오류나면 ?1을 반환한다.select 함수는 두 가지 종류의 입력에 대하여 어떤 입력이 발생했는지 판단하기 위하여ISSET 매크로를 사용103~120 : 초기 소켓 sockfd에서 입력이 발생한 경우 클라이언트의 접속을 받아들이고 new_fd를생성한다.클라이언트 소켓번호를 client_s[num]에 저장하고 클라이언트가 접속할 때 입력받은 id와 pw를 각각받는다.122~136 : 클라이언트에게 입력받은 id와 pw를 정확히 입력했는지 확인하고 각각의 경우에 맞는메시지를 보낸다. (로그인에 성공한 경우, 로그인 성공 메시지와 환영 메시지를 보낸다.)140 : 새로운 클라이언트가 접속할 때마다 client_s 배열에 저장해야하므로 num을 1 증가시킨다.144 : 채팅 메시지가 도착했는지 검사를 시작한다. 클라이언트가 보낸 메시지를 모든 클라이언트,즉 다른 클라이언트에게 보내기 위해 for문을 사용한다.146 : 소켓 client_s[i]에서 채팅 메시지를 수신한다. recv함수 이용148~155 : 만일 client_s[i]에게 수신된 내용의 반환값이 ?1일 경우 클라이언트 수를 하나 줄이고클라이언트 소켓을 종료시킨다.161 : 받은 내용이 EXIT, 즉 종료문자 ‘/exit’일 경우 해당 클라이언트가 종료하겠다는 의미이므로client_s 배열의 크기를 조절하고, num을 1씩 줄인다.184~194 : client_s[] 내의 최대 소켓번호를 얻는 함수로 초기치는 i이다. return 값은max 값으로 최대 소켓 번호를 뜻한다.클라이언트채팅 클라이언트는 클라이언트가 입력을 하면 서버로 메시지를 전송하고서버가 보내주는 메시지를 화면에 출력하는 역할을 한다.서버 101과 103 모두 같은 코드를 사용하였다.1~15 : 클라이언트도 서버와 마찬가지로 기본적인 헤더파일과 매크로 함수 정의를 하였다.여기서 fail에 대한 정의는 서버에서 fail 문자열이 날아올 경우 클라이언트를 종료시키기 위한비교 문자로 사용하기 위하여 정의하였다.20 : 화면 초기화32 : 읽기 변화를 감지하기 위한 fd_set 구조체를 선언34~38 : 실행에 실패할 경우 사용방법을 설명40~41 : 실행할 때 받았던 인자 argv[3]과 argv[4]를 각각 id와 pw에 저장55~64 : 연결에 실패하면 ?1 반환. 연결에 성공하면 서버에 id와 pw 정보를 넘긴다.66 : 소켓 번호 + 1을 하여 select 함수의 첫 번째 인자로 사용67 : 초기화78 : 키보드로부터 입력을 받은 데이터를 서버에 전송한다.이때 입력받은 문자열은 msg에 저장하고 sprintf를 사용하여 line에 문자열을 저장한다.이때 클라이언트의 아이디와 메시지를 함께 저장하여send함수를 이용하여 서버에 line의 내용을 보낸다.strstr함수를 이용하여 입력받은 내용을 비교한다.msg의 내용이 종료문자 EXIT, 즉 ‘/exit’인 경우 인사말과 함께 소켓을 종료시키고프로그램을 종료시킨다.95 : 서버가 보내오는 메시지를 수신하여 출력한다.이때 만약 서버가 보내오는 메시지가 fail의 문자열과 같으면 로그인에 실패했다는 문자열과동시에 소켓을 종료시키고 프로그램을 종료시킨다.02. 접속방법서버 : ./s1 4322잘못 입력한 경우 어떻게 접속해야 되는지 사용방법이 나온다.제대로 입력하고 접속한 경우화면이 클리어 됨과 동시에 서버 채팅창이라는 알림이 뜬다.클라이언트 : ./2 220.149.128.102 4322 user1 passwd1잘못 입력한 경우 어떻게 접속해야 되는지 사용방법이 나온다.제대로 입력하고 접속한 경우화면이 클리어됨과 동시에 로그인 접속 성공 메시지가 나온다.아이디와 비밀번호를 잘못친 경우로그인 실패 메시지와 동시에 프로그램을 종료한다.03. 실행결과서버서버에 클라이언트가 접속할 때마다 로그인 문자열을 서버에도 띄운다.또한 유저가 메시지를 보낼 때마다 받은 메시지를 서버에 띄우고어떤 유저가 메시지를 보냈는지 구분이 된다.클라이언트[user1] [user2]메시지를 보낼 때마다 상대방에게 메시지를 보낸다.클라이언트가 종료하기 위해 /exit를 입력하면다음에 또 접속해달라는 문자열과 함께 종료한다!04. 고찰사항원래는 fork문을 사용하여 채팅창을 구현하고자 하였지만 잘 안 되어 그냥 selec() 함수를이용하였다. fork문은 파이프를 사용하다가 안 돼서 FIFO를 사용하다가 file 입출력 등 다양한 방면으로 시도해 보았지만 잘 되지 않았다.결국 시간에 쫓겨 select() 함수로 채팅창을 구현하였지만 과제기간이 끝난 이후에 fork()를사용해서 다시 만들어보고자 한다.그래도 새로운 구조체와 새로운 함수를 공부하게 되어 새롭고 재밌었다.
    공학/기술| 2018.05.01| 13페이지| 2,000원| 조회(1,271)
    미리보기
  • [리눅스] 서버 클라이언트 이용 로그인 프로그램 평가B괜찮아요
    OSEmbedded-2차 과제-STATE MACHINE-7차-학과 :학번 :이름 :제출일 : 2017년 11월 28일교수님 :Final Project #1(1) Server-Client Model(Project#1)- Multiple users can access the server. (server concurrency)- Each user has to log-in the server with ID/PW코드[서버]1~9 : C언어의 표준 라이브러리 함수의 매크로 정의, 상수, 문자열, 소켓 등의 입출력 함수가포함된 헤더 파일을 포함한다.10~23 : #define을 이용해 서버의 IP 주소와 PORT 번호, 사용자의 ID와 비밀번호, 로그인 완료와실패 메시지와 같은 매크로를 정의한다.28 : 커넥터용 연결을 기다리는 sockfd와 통신용 new_fd 변수를 선언31~35 : 내가 프로그램을 작동시킬 때 사용하는 주소와 기기의 고유 주소를 나타내는 변수를 선언 후사이즈를 측정하는 변수 선언38~47 : 그 외 버퍼 크기나 ID, PW와 메시지를 받을 변수 선언48~54 : 소켓을 생성하는 함수 socket()를 이용하여 소켓을 생성한다. 성공하면 0을 반환하지만실패할 경우 ?1을 반환하며 에러문과 함께 프로그램을 종료시킨다.56~65 : htons() 함수를 이용하여 포트 번호(SERV_PORT = 4322)를 short형 호스트 바이트 순서를네트워크 바이트 순서로 변경한다. inet_addr() 함수를 이용하여 수와 점으로 표기된IP주소(SERV_IP = 220.149.128.102)를 long형으로 된 IP주소로 변경한다.메모리를 초기화하는 함수 memset을 사용하여 0으로 초기한다.67~73 : bind() 함수를 사용하여 IP주소와 PORT번호를 할당한다. 성공할 경우 0을 반환하고 실패할경우 ?1을 반환하며 에러문과 함께 프로그램을 종료시킨다.75~81 : listen() 함수를 사용하여 연결 요청 가능상태를 변경한다. 성공할 경우 0을 반환하고실패할 경우 ?1을 반환하며 에러문과 함께 프로그램을 종료시킨다.87~95 : accept() 함수를 사용하여 서버가 listen에 의해 요청을 기다리고 있을 때 클라이언트로부터통신 요청이 들어오면 요청을 받아들인다. 호출에 성공할 경우 새로운 소켓 식별자를 반환하고,이 새로운 소켓 식별자를 이용해 클라이언트와 데이터를 주고 받는다.실패할 경우 ?1을 반환하며 에러문과 함께 프로그램을 종료시킨다.99~100 : pid에 fork의 반환값이 저장된다. 호출에 실패할 경우 ?1 저장103~107 : 호출에 실패할 경우 음수 값을 반환하며 error문과 함께 프로그램을 종료한다.108 : pid가 0인 경우 현재 프로세스는 자식 프로세스이다.110~113 : recv() 함수를 사용하여 new_fd 소켓으로 들어오는 데이터(ID와 PW)를 받아 rcv_byte에저장한다. //문자열의 끝은 널문자()로 지정하였지만, 주석처리를 하여도 작동이 잘 되었다. 그렇지만 마무리를 널문자()로 정의하는 것이 확실한 마무리를 지을 수 있다.119~132 : strcmp() 함수를 사용하여 입력받은 문자와 USER_ID(또는 USER_PW)를 비교한다. USER1_ID를입력하고 USER1_PW을 입력할 경우 로그인에 성공하고 user1 로그인에 성공했다는 메시지를띄운다. 그리고 send()함수를 사용하여 new_fd소켓에, 즉 클라이언트에돋 동일한 메시지를보낸다. (USER2_ID와 USER2_PW도 동일) 만약 입력받은 id와 pw정보가 다른 경우 로그인에 실패하고, 실패했다는 메시지를 서버와 클라이언트에 띄운다. 마지막에는 close()함수를 사용하여new_fd 소켓 종료한다.136~138 : pid가 0일 경우 부모프로세스 생성. (부모 프로세스의 pid 변수에는 0이 아닌 자식 프로세스의프로세스 ID 저장) new_fd 소켓을 종료시킨다.141~142 : new_fd 소켓과 sockfd 소켓을 종료시킨다.[클라이언트]1~8 : 서버 코드와 비슷하게 C언어의 표준 라이브러리 함수의 매크로 정의, 상수, 문자열, 소켓 등의입출력 함수가 포함된 헤더 파일을 포함한다.10~11 : #define을 이용해 서버의 IP 주소와 PORT 번호의 매크로를 정의한다.14~24 : sockfd를 선언하고 buf의 크기를 512로 지정하여 선언한다. ID와 PW의 값을 받을 변수를 선언한다.26~33 : socket() 함수를 사용하여 클라이언트 소켓을 생성한다. 이때 sockfd의 값이 ?1이면에러문과 함께 프로그램을 종료시킨다.36~41 : dest_addr에 IP주소와 포트 번호를 저장한다. (서버 코드의 55~62열 참고)44: dest_addr.sin_zero를 0으로 초기화한다.46~52 : connect() 함수를 사용하여 서버에 통신을 요청한다. 실패할 경우 ?1의 값을 반환하며에러문과 함께 프로그램을 종료시킨다.55~56 : recv() 함수를 이용해 서버에서 보낸 문자열 정보를 받아오고 클라이언트 화면에 나타낸다.58~63 : 사용자로부터 ID와 Password의 입력 값을 받아온다.65~66 : send() 함수를 사용하여 입력받은 ID와 Password의 값을 서버에 보낸다.69 : recv() 함수를 이용해 로그인에 성공하면 성공했다는 문자열을, 실패하면 실패했다는 문자열을받는다. 문자열의 마무리는 널문자로 구분하며 널문자 뒤의 쓰레기 값은 받지 않는다.70열은 안 적어도 무방)73 : 소켓 sockfd를 닫는다.
    공학/기술| 2018.05.01| 8페이지| 2,000원| 조회(597)
    미리보기
  • [리눅스] 구구단 출력 프로그램, 파일 입출력(파일명을 키보드로 입력받고 내용 씀, 저장된 파일 읽고 출력)
    OSEmbeded-1차 과제-STATE MACHINE-7차-학과 :학번 :이름 :제출일 :교수님 :문제1구구단의 단을 입력 받아, 해당 단의 구구단을 출력하는 프로그램을 작성해 봅시다.(조건 : do ~ while 문으로 무한루프를 만들고 0 을 입력받을 때까지 실행이 반복되도록 하시오.0, 2~9 이외의 수를 입력받으면 “Wrong input… (0: quit, 2~9: dan)” 을 출력하는 예외처리를 하시오.)[코드]5 : 변수 i와 j 생성10 : 구구단의 단을 scanf로 변수 j에 입력 받음12~13 : 입력 받은 값이, 즉 j가 0이면 return 값을 0을 출력해 실행 종료14~21 : 입력 받은 값이, 즉 j가 2 이상이고 9 이하일 경우 for문을 이용하여 I의 값을 1부터1씩 증가하여 9까지 구구단을 나타냄22~23 : 입력 받은 값이 2~9와 0 이외의 값일 경우 예외처리7, 24 : do~while문을 이용하여 무한루프[컴파일 & 실행화면]2와 9 사이의 값을 입력하면 제대로 구구단을 수행한다.그러나 2~9 이외의 값인 10을 입력하면 예외처리 된다. (구구단 실행 X)0을 입력하면 실행이 끝남을 알 수 있다.문제2 (파일 입출력)파일명을 키보드로부터 입력받고, 그 파일에 내용을 쓴다.저장된 파일을 읽어서 그 내용을 화면에 출력한다.[코드]6 : FILE 구조체 포인터 변수 선언7~8 : 파일 이름과 파일 내용을 저장할 변수 선언11 : 파일 쓰기 3줄을 받기 위한 변수14 : 파일 이름 scanf를 통하여 저장16 : fopen()함수를 통하여 14에서 설정한 파일이름을 연다. 두 번째 매개변수에 wt를 넣어쓰기로 파일을 연다.19~23 : fgets()함수를 통하여 문자열을 입력 받아 Text 변수에 저장한다.이때 엔터를 누르면 I는 1씩 증가fputs()함수를 통하여 Text변수에 저장된 문자열을 파일에 출력한다.25~28 : fp가 NULL이면 에러 문자를 통해 파일이 제대로 열리지 않음을 알린다.29 : fclose()함수를 통하여 파일을 닫는다.
    공학/기술| 2018.05.01| 4페이지| 2,000원| 조회(435)
    미리보기
전체보기
받은후기 2
2개 리뷰 평점
  • A+최고예요
    0
  • A좋아요
    1
  • B괜찮아요
    1
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 02일 토요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
8:08 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감