본문 바로가기

분류 전체보기246

파일 입출력 -들어가기 앞서 c언어 어 파일 입출력 함수는 크게 2가지로 나뉜다 . 1. 저수준 파일 입출력 함수 (버퍼 사용 x) 2. 고수준 파일 입출력 함수 (버퍼사용) 고수준 파일 입출력 함수 위주로 알아본다. C 언어에서 스트림은 stdio.h 안에 정의되어 있는 FILE 구조체이다. stdio.h 에서 제공하는 표준 입출력 스트림 (stdout,stdin,stderr) 또한 파일 끝에는 파일 끝을 표시하는 EOF 데이타가 존재한다 파일의 종류. 파일은 2가지 종류로 나눌수 있다. 1. 텍스트 파일 2. 이진파일 텍스트 파일의 경우 1byte 씩 읽어와서 아스키 코드에 맞게 해석 한다. 이진파일 의 경우 그딴거 없이 1과 0 으로된 데이터 자체를 읽어온다. 사실 데이터 자체는 모두 2진수로 이루어져있다 그저.. 2021. 6. 6.
window forms 목차 - 이미지 만들기 - 키보드 입력 으로 이미지 움직이기 - 이미지 만들기 1. 내가 이미지 만들어서 사용 1. resourse 에 bitmat 이미지 추가해야함 이미지 대충그려줌 저장해줌 Form 속성에서 paint 더블클릭 아래처럼 bitmat 객체를 생성해서 넣어준다. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 {.. 2021. 6. 4.
210604 menu 도구 상자의 MenuStrip 를 이용해서 메뉴를추가 할 수 있다 . 또한 속성을 통해서 각 메뉴 별로 이벤트를 할당 할수도 있다. 열기 누르면 messagebox 호출 그외 다양하 기능이 많지만 알아서 해라 인터페이스 인터페이스 예제 1 -IComparable using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; class Dummy :IDisposable { public void Dispose() { Console.WriteLine("Dispose()를 호출합니다."); } } class Program { static void Main(st.. 2021. 6. 4.
구조체의 padding 구조체를 메모리에 구현할때 는 복잡한 로직을 따라서 만든다. 나중에 통신을 할때는 데이터만 받고 type 을 모르기 때문에 우리가 정의하는 struct 의 메모리 구조를 아는것은 매우중요하다. 다음의 원리와 예제를 보고 이해해보자 1. 차례대로 구조체의 멤버를 메모리에 저장한다. 2. 4byte 기준으로 데이터를 묶는다. 3. 4byte 로 딱 안떨어지면 다른 4byte 메모리에 저장한다. 4. 공간이 남으면 2byte 기준으로도 넣는다. #include struct smart1 // 기본적으로 어떻게 동작하는지 { char a1; int a; char a2; }; struct smart2 { int a; // 4 short b; // 8 char c; // 8 char d; // 8 char e; //.. 2021. 6. 4.
공용체 union 1하나의 메로리를 공유하는 구조이다. 공유하는 data type 중 가장큰 데이터를 갖는다. #include int main() { union test { int a, b, c; char abc[12] ; }; union test Un1; strcpy(Un1.abc, "abc"); printf("%d\n", Un1.a); printf("%d\n", Un1.b); printf("%d\n", Un1.c); printf("%s\n", Un1.abc); return 0; } 2021. 6. 4.
210603_2 추상 클래스 - 1. abstract 키워드만 붙인 case - 2. abstract 키워드 + abstract 메서드 1번의 경우 상속 받으면 객체 생성 가능 2 번의 경우 상속 + 추상 메서드까지 구현해야 객체 생성 가능 목적 1.가이드 - 내가 만든 클래스로 객체를 못만들게 하려는 목적 2. 일관성유지 - 자식 클래스의 인터페이스를 동일하게 유지 3. 다형성 구현 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //추상 클래스 abstract class Smart{public int iNum;} class Child1: Smart{ publi.. 2021. 6. 3.
비트필드 비트필드 bit 단위로 구조체의 멤버를 제어할 수 있는 특수한 형태의 구조체 비트 필드는 data type 으로 int 와 unsigned 만 사용할 수 있다. #include int main() { // 보통 하나의 bit 필드는 2byte 크기이다. struct COM_PORT { unsigned baud : 3; unsigned parity : 2; unsigned stop : 1; unsigned data : 2; }ps; ps.baud = 7; ps.parity = 3; ps.stop = 1; ps.data = 3; printf("%p\n", &ps); printf("ps.baud : %d\n", ps.baud); // printf 하면 보여주네 ? printf("ps.parity : %d\n".. 2021. 6. 3.
List class using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace _210603_008 { class Program { static void Main(string[] args) { // list 선언과 동시에 초기화 List list = new List() { 52, 273, 34, 64 }; Console.WriteLine("===================="); foreach (var item in list) { Console.WriteLine(item); } Console.W.. 2021. 6. 3.
구조체 #include struct test; int main() { // 구조체 선언과 초기화 struct test // test 구조체를 선언 하고 동시에 초기화 { char name[20]; int kor, eng, math; float avg; }scoer_data = {"kim",80,90,75,81.66 }; struct test2 { char* name; // 포인터 선언 int kor, eng, math; float avg; }; //구조체 배열 초기화 // 개별로 입력 받기 struct test score; strcpy(score.name, "kim"); //socer.name = "kim"; socer.name 은 배열임으로 주소를 받을 수는 없다. 1 score.kor = 1; score.e.. 2021. 6. 3.