본문 바로가기
반응형

프로그래밍/c언어13

c언어 파일 입출력 ●파일 열기 ex) FILE * fp; fp = fopen("파일이름", "형식"); ●파일 닫기 ex) fclose(fp); ●입력할 파일은 실행하는 코드와 같은 폴더에 위치해야 한다. 보통 비주얼스튜디오에서 New 파일추가에서 텍스트 문서를 추가하면 된다. ●출력된 파일을 확인하려면 비주얼스튜디오 좌측 파일목록에서 우클릭->Add File to Project선택후 파일이름에 *를 입력하고 ok버튼을 누른다. 그 다음 출력된 파일을 선택하면 된다. ●문제 - 파일에서 숫자 2개를 입력받아서 첫번째 숫자에서 두번째 숫자까지의 구구단을 구해서 파일로 출력하는 프로그램을 만들어라. #include void main(){ FILE *in = fopen("input.txt", "r"); FILE *out = f.. 2012. 3. 28.
c언어 경고(warning) ● warning C4700: local variable '.identifier' used without having been initialized-경고 원인 .identifier 의 변수에 대해서 초기화 값을 지정하지 않고 사용하는 경우에 발생 -경고 해결 변수를 초기화 하지 않고 사용하는 것은 프로그램상에서 위험하므로 초기값을 지정해 주는 습관을 들이는게 좋다. ● warning C4001: '.identifier' : unreferenced local variable-경고 원인 선언한 변수가 사용되지 않는 경우에 나오는 경고이다. ● warning C4244: 'conversion' conversion from 'type1' to 'type2', possible loss of data-경고 원인 정.. 2012. 2. 8.
c언어 에러(error) ● error C2228: left of '.identifier' must have class/struct/union type-에러 원인 class나 struct, union으로 선언한 변수를 사용하는 경우에 '.identitier'부분이 class, struct, union 에서 정의한 변수명이 아닌경우, 혹은 포인터를 사용하면서 '->'아니라 '.'으로 사용한 경우에 이런 에러가 발생 -에러 해결 class, struct, union 에서 선언한 변수명과 맞는ㄴ지 체크하고 포인터를 사용하는 경우 '.'이 아니라 '->'로 접근 ● error C2143: syntax error : missing ';' before 'if'-발생 원인 if문 이전에 ';'이 빠진 경우에 발생 -에러 해결 명령어가 끝나는.. 2012. 2. 8.
c언어 디버그 기법 ●처리를 분할 식이나 문을 한번에 모아서 작성하기 보다 처리나 의미 단위로 분할하는게 좋다. 한줄에 여러개의 문을 기술하지 않는 편이 에러의 위치를 쉽게 파악할수 있다. ●printf()를 삽입 소스 프로그램에 printf()를 삽입하여 단서를 얻을 수 있다. 예를 들어 프로그램 속에 printf("이곳은 실행됨\n"); 와 같이 써두면 그곳에 도달했을 때 메시지가 출력되어 그부분이 언제 실행되는지 알수 있다. 그리고 변수의 값을 표시해두면 그 시점에서의 변수 값도 조사할 수 있다. ●함수별로 실행 c언어에서의 처리 단위는 함수이기 때문에 함수를 테스트하는 일이 많다. 정상적으로 함수가 동작하는지 알기 위해 main()함수를 바꿔 써서 대상 함수를 바로 실행시키는 방벙이 있고, 별로의 테스트용 프로그램을.. 2012. 2. 7.
c언어 텍스트 파일의 내용을 거꾸로 표시하는 프로그램 소스 프로그램 이름: rev.c #include #include #include #include typedef struct _TXT{ int number; char string[256]; } TXT; int main() { FILE *fp; int i, lines; char s[256]; TXT *p; //행의 수를 카운트하여 필요한 메모리 확보 if(!(fp=fopen("rev.c", "r"))) return 1; for(line=0; !feof(fp); lines++) fgets(s, 255, fp); p=(TXT *)malloc(lines * sizeof(TXT)); if(!p) return 2; memset(p, 0, lines * sizeof(TXT)); fseek(fp, SEEK_SET, 0); f.. 2012. 2. 7.
c언어 기본 문법 정리4 ●연산에서 조건이 true면 1을 반환, false면 0을 반환 ●sizeof 연산자 - 변수나 자료형이 메모리를 점유하는 크기를 바이트 단위로 구함 ex) int n,m; n=sizeof(int); m=sizeof(n); ●문자열 선언 - 배열 이용 ex) char a[]="Hello"; char a[6]="hello"; ●문자열은을 복수 문자의 집합으로 이것을 담아두기 위해서 배열을 이용한다 ●문자열 함수 - 프로그램 첫머리에 #include 써야함 - strlen() - 문자열 길이 반환 ex) char s[]="abc"; int a; a = strlen(s); - strcpy() - 문자열을 복사 ex) char s[6]; strcpy(s, "abc"); - strcat() - 문자열 결합 ex).. 2012. 2. 4.
c언어 기본 문법 정리3  ●포인터 - 메모리의 주소값을 저장하기 위한 변수 ● &a - 변수 a의 주소값을 반환 *a - 포인터a가 가리키는 메모리를 참조 ●* - 곱셈 ex) a*b - 포인터 선언 ex) int *a -포인터 접근 ex) *a ●배열 이름은 포인터 상수이다. 배열이름은 첫번재 요소의 주소값이다 ex) int a[5]={~~~}; // 여기에서 'a'가 배열 이름이고 배열의 첫번째 요소의 주소를 저장하는 포인터이다 ●문자열은 주소값으로 저장된다, 그래서 문자열선언은 배열을 만들어서 한다 ex) chat a[5]="good"; char *str="abcd"; ● 직접접근 - 변수를 통한 접근 간접접근 - 포인터를 이용한 접근 ●구조체 ex) struct A{ int x; int y; }; struct A a;.. 2012. 2. 4.
c언어 기본 문법 정리2 ●서식문자 %d, %i - 부호있는 10진수 정수 %f - 부호있는 10진수 실수 %c - 단일문자 %s - 문자열 %o - 부호x, 8진수 정수 %x - 부호x, 16진수 정수 %u - 부호x, 10진수 정수 ● %8d - 8칸 확보하고 오른쪽 정렬 %-8 - 8칸 확보하고 왼쪽 정렬 %+8d - 8칸 확보하고 오른쪽 정렬한상태에서 +나 -기호 붙임 ●while 반복문 while(반복조건){ 내용 } ●for반복문 for(초기문; 조건문; 증감문) { 내용 } ●if 조건문 if(조건){ 내용 } ●if~else 조건문 if(조건) { 내용 } else if(조건) { 내용 } else { 내용 } ●조건 연산자 조건 ? A : B //조건이 true면 A반환, 조건이 false면 B반환 ●switc.. 2012. 2. 4.
c언어 기본 문법 정리1  ●c언어의 기본구조 ex) #include int main(){ printf("Hello World\n"); return 0; } ●주석 //~~ /* ~~ */ ●서식문자 %d - 정수 %c - 문자 %s - 문자열 %f - 실수 . . . ●변수 이름은 대소문자 구분, 될수 있으면 의미를 지니는 이름으로 지정하는게 좋다 ●";(세미콜론)"은 문장의 끝을 나타냄 ●변수를 선언할 경우 변수를 사용하기전에 먼저 선언해야 한다 ● ++a - 선 증가, 후연산 a++ - 선 연산, 후증가 ●읽기 쓰기 ex) int val; scanf("%d", &val); //scanf에서는 &사용해야한다 printf("%d", val); ●컴퓨터는 내부적으로 int형 연산을 가장 빠르게 처리한다 ●double형으로 데이.. 2012. 2. 4.
열혈강의 c 28장 도전 프로그래밍 four 1,2,3 1. 간단한 도서 관리용 프로그램을 작석해 보자. [제목, 저자, 페이지수]에 대한 정보를 저장할 수 있는 구조체를 정의하고, 구조체 배열을 선언해서 도서에 대한 정보를 저장하는 구조를 작성해 보자.main함수는 사용자로부터 3권의 도서에 대한 정보를 입력받고, 입력이 끝나면 도서에 대한 내용을 출력해 주도록 구현을 하자. #include struct book { char juja[100]; char name[100]; int page; }; int main() { int i; struct book a[3]; printf("도서정보입력\n"); for(i=0; i 2011. 4. 13.
열혈강의 c 20장 도전 프로그래밍 three 1. 4 x 4 int형 2차원 배열을 선언하고, 모든 요소를 아래 그림의 왼쪽에 있는 형태와 동일하게 초기화하자. 그리고 배열의 요소들을 오른족 방향 으로 90도씩 이동시켜서 출력하는 프로그램을 작성해보자. #include int main() { int i, j; int k=1; int arr[4][4]; for(i=0; i 2011. 4. 9.
열혈강의 c 15장 도전 프로그래밍 two 1. 길이가 10인 배열을 선언하고 총 10개의 정수를 입력받아서, 홀수와 짝수를 구분해서 출력하는 프로그램 #include int hol(int a); int jja(int a); int main() { int i; int a[10]; printf("총 10개의 숫자입력\n"); for(i=0; i 2011. 4. 8.
열혈강의 c 10장 도전 프로그래밍 one 1. 10진수 정수를 입력 받아서 16진수로 출력하는 프로그램 #include int main() { int a; printf("10진수 정수 입력\n"); scanf("%d", &a); printf("16진수: %x\n", a); return 0; } 2. 사용자로부터 2개의 숫자를 입력받아서 구구단을 출력하는 프로그램.예를들어 3,5를 입력하면 3단,4단,5단을 출력,2,4를 입력하면 2단,3단,4단을 출력해야한다. 입력순서는 상관없어야 한다 #include int gogodan(int a, int b); int main() { int a, b; printf("숫자입력\n"); scanf("%d %d", &a, &b); gogodan(a, b); return 0; } int gogodan(int a,.. 2011. 3. 30.
반응형