Visual Studio
-
fscanf(), fwrite(), fread()Visual Studio/C 기초 2012. 11. 4. 15:25
fscanf() fscanf()는 입력 동작이 stdin 대신에 지정된 스트림을 통해서 수행되기 때문에 scanf()와 거의 동일하지만 약간 다릅니다. fscanf(FILE *fp, *fmt ...); 아까도 말씀드렸듯이 scanf에선 stdin에서 입력동작이 수행되는 반면 fscanf는 위의 *fp에서 수행됩니다. 포인터 fmt는 fscanf()가 입력을 받아들이는 방법을 지정하는 형식화 문자열에 대한 포인터 입니다. 예제를 보겠습니다. #include #include main(){ float f1, f2, f3, f4, f5; char buf[80]; FILE *fp; puts("읽기모드로 파일을 불러옵니다. 파일명을 입력해주세요."); gets(buf); if((fp=fopen(buf,"r")) =..
-
fprintf()Visual Studio/C 기초 2012. 10. 22. 21:18
형식화된 파일 입출력은 특정 방법으로 형식화된 텍스트와 숫자 데이터를 다루는데요, fprintf()는 전 포스팅에 다뤘기 때문에 간단히만 알고 넘어가겠습니다. fprintf(FILE *fp, char *fmt,...); FILE *fp는 *fp에 자신이 입력할 내용을 보낼 포인터를 뜻합니다. 예제를 보시면 아실겁니다. :) 마지막 ...엔 변칙적인 개수의 인수를 뜻하는데, 파일 포인터와 형식화 문자열을 인수로 가지면서 추가로 필요한 만큼 많은 인수를 받아 들일 수 있습니다. printf()와 많이 유사합니다. fprintf()를 사용해 저번에 제가 C드라이브에 만든 hello.bat 파일에 입력해보겠습니다. #include #include void clear(void); // stdin안의 불필요한 내용..
-
fopen()Visual Studio/C 기초 2012. 10. 16. 17:07
디스크에서 파일을 사용하는 방법에 대해 알아보겠습니다. C의 스트림에선 텍스트 스트림과 바이너리 스트림이 있는데요, 텍스트 스트림은 텍스트 모드 파일과 관련되어 있습니다. 각각의 문장은 문자로 구성되고 문장의 마지막을 나타내는 하나 이상의 문자를 포함합니다. 물론 NULL문장은 포함되지 않습니다. 바이너리 스트림은 바이너리 모드 파일과 관련되어 있구요, 어떤 파일 입출력 함수는 한 가지 파일 모드에서만 사용될 수 있고, 다른 어떤 함수는 두 가지 모드에서 모두 사용될 수 있습니다. * 키보드에서 파일 이름을 입력할때 하나의 경로를 지정할 때 하나의 역슬래시 만을 표기할 수 있습니다. UNIX에선 일반 슬래시로 표기합니다. file()의 원형은 이렇습니다. FILE *fopen(const char *fil..
-
100명의 신상 정보를 관리하는 프로그램Visual Studio/C 실전 2012. 9. 23. 16:29
총 100명까지의 신상 정보를 입력하는 프로그램입니다. 숫자를 더 늘리고 싶다면 MAX값을 수정하면 되겠죠? 이 프로그램은 프로그램 출력에 대해 까지 포스팅한 내용을 바탕으로 제작되었습니다. #include #include #define MAX 100 #define TRUE 1 #define FALSE 0 struct record { char fname[15+1]; // 성이고 +1은 NULL값을 위한 자리 char lname[20+1]; // 이름 char phone[11+1]; // 전화번호 long income; //수입 int month; int day; int year; //각각 생일의 월, 일 년도 }; struct record list[MAX]; //실제 구조체를 선언 int last_ent..
-
C언어 프로그램 출력에 대해Visual Studio/C 기초 2012. 9. 23. 15:39
화면 출력 함수는 입력 함수와 마찬가지로 세 가지 종류로 구분되는데요, 문자 출력, 문장 출력, 형식화된 출력을 수행하는 함수가 있습니다. putchar()는 일반적으로 화면을 뜻하는 stdout에 출력 내용을 보내고, fputc()와 putc()는 출력 내용을 인수로 지정된 스트림을 보냅니다. int putchar(int c) //putchar()의 원형입니다. int로 형을 지시하긴 했지만 프로그램에선 char형으로 putchar()에 전달합니다. 0~255까지의 범위에 포함된다면 int형 값을 전달할 수 있습니다. #include #define MAXSTR 80 char message[] = "putchar() 표시."; main(){ int count; for(count = 0;count < MA..
-
C언어 프로그램 입력에 대해Visual Studio/C 기초 2012. 9. 22. 16:32
Jaeseok Han 대부분의 프로그램은 입출력 동작을 수행합니다. 프로그램이 입출력 동작을 얼마나 효과적으로 처리하는지는 가끔 프로그램의 유용성을 판단하는 가장 좋은 기준이 됩니다. 오늘은 스트림, 프로그램의 입력과 출력을 전환시키는 방법 등에 대해 알아보겠습니다. C프로그램이 실행되는 동안 데이터는 읽고 쓰기가 가능한 메모리에 저장됩니다. 데이터는 프로그램에서 선언된 변수, 구조체, 배열의 형태로 존재하는데요, 데이터는 외부로부터 프로그램으로 전달될 수 있고, 외부에서 프로그램이 사용할 수 있는 메모리로 데이터가 전달되는 것을 입력(input)이라고 합니다. 여기서 외부로 전달되는 과정을 출력(output)이라고 합니다. 스트림(stream)이란? 스트림은 문자의 구성이라고 보시면 됩니다. C++에서..
-
C언어 연결리스트 (linked list)Visual Studio/C 기초 2012. 9. 21. 16:48
구조체 알아보러 가기 포인터 알아보러 가기 연결리스트는 C에서 쉽게 구현할 수 있는 실용적인 데이터 저장방법입니다. 연결리스트의 각 데이터 항목은 구조체에 포함되어 있는데, 구조체는 데이터를 저장하는데 필요한 요소들을 가지고 있습니다. 구조체에 포인터가 가미되면 바로 연결리스트가 되는 것이죠. struct person{ char name[20]; struct person *next; }; person이라는 구조체를 정의하고, 데이터만을 이야기 한다면 person은 단지 20개의 요소로 구성되는 문자형 배열입니다. data next pointer이 next pointer가 밑의 다음 구조체의 data에 연결되고, data next pointer 이 next pointer가 밑의 다음 구조체의 data에 연..
-
C언어 함수 기초Visual Studio/C 기초 2012. 9. 14. 17:17
함수는 일정한 동작을 수행하고 필요에 따라 함수를 호출했던 프로그램으로 결과값을 돌려주는 C언어의 독립적이고 독특한 이름을 가진 코드입니다. 기초적인 예제를 보겠습니다. #include long cube(long x); long input, answer; main(){ puts("int형 값을 입력해주세요 : "); scanf("%d",&input); answer = cube(input); printf("입력하신 값%d의 세제곱은 : %d\n",input,answer); } long cube(long x) { long x_cubed; x_cubed = x*x*x; return x_cubed; } 매개변수를 먼저 선언한 후에 main 함수에서 함수를 호출합니다. 그 후에 불러온 함수를 실행하는 것이죠. 이..