블로그 이미지
송시혁

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

fgets()원형


fgets("buffer, length(size), fp);

첫 번째 인자는 버퍼.

두 번째 인자는 크기.

세 번째 인자는 파일 포인터형 파일 및 핸들 (0=키보드, 1=모니터, 2=에러)

fgets()함수 또한 엔터(\n)까지 포함하여 입력받으므로 제대로 된 출력을 위해서는 엔터를 제거하는 것이

좋다. 반환형은 FILE * 형이다.




posted by 송시혁

1. const int *p1= &A;


2. int const  *p2= &A;


3. int *const p3= &A;


4. const int * const p4= &A;


5. const int const *p5= &A;


6. int const * const *p6= &A;




5번이 에러


posted by 송시혁

#include <stdio.h>
int main()
{
  int i=0;
  int num=0;
  int sum=0;
  
  do
  {
    scanf("%d"&num);
    sum =sum + num;
    i++;
  }
  while(i<5);
  printf("SUM : %d", sum);

    
  return 0;
}

do에서 먼저 연산을 수행한 뒤, while문에서 조건을 따진다.
위의 소스는 scanf로 num을 입력받아 sum을 더하는 연산을
수행하고 있다.
그러나 밑에 while문이 5보다 작을 때 까지이므로
i가 0~4까지 즉, 5번만 연산이 수행된다.




#include <stdio.h>
int main()
{
  int iNum;
  scanf("%d"&iNum);
  printf("%s\n", (1==iNum)?"yes":"no");


  return 0;
}
위의 소스는 조건연산자

A?B:C가 기본형식이며, A 가 참이면, B를 ,

A가 거짓이면, C를 수행한다.

3개의 항이라서 3항연산자, 혹은 다중연산자라고 불린다.



'C언어 수업정리 > 5월 수업정리' 카테고리의 다른 글

5월 3일 fgets()함수(정리예정)  (0) 2013.06.11
5월 13일 CONST 개념(보류)  (0) 2013.05.13
5월 13일 수업정리 union(보류)  (0) 2013.05.13
5월 13일 정리 goto  (0) 2013.05.13
5월 13일 열거형 응용  (0) 2013.05.13
posted by 송시혁

#include <stdio.h>

union/*struct*/ smart
{
  unsigned int a;
  unsigned short b;
  unsigned char c;
  
};


int main()
{
  union smart val;
   val.a=0x12345678;    
   val.b=0xabcd;
   val.c= 0xef;
  
  printf("a= %08x\n", val.a);
  printf("b=%08x\n", val.b);
  printf("c =%08x\n", val.c);

  return 0;
}



'C언어 수업정리 > 5월 수업정리' 카테고리의 다른 글

5월 13일 CONST 개념(보류)  (0) 2013.05.13
5월 13일 do-while문과 조건연산자  (0) 2013.05.13
5월 13일 정리 goto  (0) 2013.05.13
5월 13일 열거형 응용  (0) 2013.05.13
5월 8일 read(), write()함수  (0) 2013.05.10
posted by 송시혁


#include <stdio.h>
int main()
{
  int iNum;
  SMART:                 
  printf("숫자 입력하세요 : ");
  scanf("%d"&iNum);
  if(0==iNum)
  {

    return 0;
  }
  

  goto SMART;
  return 0;


}
goto는 아무조건없이 수행되는 명령문

위의 소스에서는 scanf로 iNum을 입력받아서 iNum이 1이

아니라면, goto에 의해서 무한 반복이 된다.

goto가 SMART(라벨)로 가라는 명령이라고 보면 된다.

그래서 프로그램은 goto SMART(라벨)에 의해 위에있는

라벨인 SMART로 가서 계속해서 수행하게 된다.



posted by 송시혁

#include <stdio.h>

enum day_type
{
  //sun,
  mon,
  tue,
  wed,
  thu,
  fri,
  sat,
  smart,
  DAY_END
  
};

char caDay[DAY_END][10= {//"sunday",
          "monday",
          "tuesday",  
           "wednesday",
          "thurday",
          "friday",      
          "saturday",
         "smartday"};

int main()
{
  int iCnt;
  int iDay;
  char buff[11];

  for(iCnt=0;iCnt<DAY_END ;++iCnt)
  {
    printf("%s\n", caDay[iCnt]);

  }
  
  printf("숫자를 넣으세요 : ");
  scanf("%d"&iDay);  
  iDay= iDay%DAY_END;
  printf("%s\n", caDay[iDay]);
  
  printf("찾고자 하는 요일 입력 : ");
  iDay = read(0, buff, 10);
  --iDay;
  buff[iDay]= 0;
  for(iCnt=0;iCnt<iDay;++iCnt)
  {
    buff[iCnt]=tolower(buff[iCnt]);

  }
  for(iCnt=0;iCnt<DAY_END;++iCnt)
  {  
    if(0==strncmp(buff, caDay[iCnt], iDay))
    {
      printf("%s\n", caDay[iCnt]);
      //break;
    }
    

  }

  /*if(iCnt==DAY_END)
  {
    printf("찾는 문자열 없음\n");
  }*/

  


  return 0;
}   




'C언어 수업정리 > 5월 수업정리' 카테고리의 다른 글

5월 13일 수업정리 union(보류)  (0) 2013.05.13
5월 13일 정리 goto  (0) 2013.05.13
5월 8일 read(), write()함수  (0) 2013.05.10
5월 7일 fread()/fwrite()  (0) 2013.05.07
5월 7일 ftell(), fseek()  (0) 2013.05.07
posted by 송시혁











pmode는 항상 #include <sys\type.h>, #include <sys\stat.h> 같이쓴다.



아래는 read(), write(), creat()함수의 원형


stdin= 키보드입력

stdout = 모니터 출력




read()에서 fd는 파일이나 파일핸들이다.

 size는 fd가 가르키는 크기만큼  buffer에 저장한다.


write()에서 fd는 파일이나 파일핸들

size는 fd가 가르키는 크기만큼  buffer에 저장한다.


write()나 read()는 반환형은 int이다.






'C언어 수업정리 > 5월 수업정리' 카테고리의 다른 글

5월 13일 정리 goto  (0) 2013.05.13
5월 13일 열거형 응용  (0) 2013.05.13
5월 7일 fread()/fwrite()  (0) 2013.05.07
5월 7일 ftell(), fseek()  (0) 2013.05.07
5월 6일 파일1  (0) 2013.05.06
posted by 송시혁



#include
 <stdio.h>
#include <string.h>
#include <process.h>

typedef struct
{
  char name[25];
  int english, math;
  float average;
}STUDENT;

int main()
{
  STUDENT st;
  FILE *fp;
  
  if((fp=fopen ("d11-7.txt""wb"))==NULL)
  {
    printf("Can't open file d11-7.txt");
    exit(-1);
  }
  
  printf("Please type <enter key> for Name, if you finish input\n");
  printf("Enter Name: ");
  gets (st.name);
  
  while(strlen (st.name)>0)
  {
    printf("Enter English score: ");
    scanf("%d"&st.english);
    printf("Enter mayt score: ");
    scanf("%d"&st.math);
    st.average =((float)st.english + st.math)/2;
    fwrite (&st, sizeof(st), 1, fp);
    
    if(ferror (fp))
    {
      perror ("Error: ");
      fclose(fp);
      exit(-1);//return (-1);
    }

    printf("\nPlease type <enter key> for Name, if you finish input\n");
    printf("Enter Name: ");
    fflush (stdin);
    gets(st.name);
    
  }
  fclose(fp);

  if((fp= fopen ("d11-7.txt""rb"))==NULL)
  {
    printf("Can't open file d11-7.txt");
    exit(-1);
  }

  printf("\nName English Math Average\n");

  while(fread(&st, sizeof(st), 1, fp)==1)
  {
    printf("%s\t %d\t %d\t %7.2f\n", st.name, st.english, st.math, st.average);
  }
  fclose(fp);  

  return 0;
}    

'C언어 수업정리 > 5월 수업정리' 카테고리의 다른 글

5월 13일 열거형 응용  (0) 2013.05.13
5월 8일 read(), write()함수  (0) 2013.05.10
5월 7일 ftell(), fseek()  (0) 2013.05.07
5월 6일 파일1  (0) 2013.05.06
5월 6일 파일 입출력  (0) 2013.05.06
posted by 송시혁

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

int main(int argc, char *argv[])
{
  char ch;
  long pos;
  FILE *infp;
  FILE *outfp;
  ch=0;
  
  if(argc !=3)
  {
    printf("Data file name missing!");
    exit(-1);
  }
  if((infp=fopen (argv[1], "rb"))==NULL)
  {
    printf("cannot fileopen");
    exit(-1);
  }
  if((outfp = fopen (argv[2], "wb"))==NULL)
  {
    printf("cnanot file create");
    exit(-1);
  }
  while(fgetc (infp)!= '\n');
  pos=ftell(infp);
  
  while(ch!= '\n')
  {
    fseek (infp, pos++, SEEK_SET);
    ch = fgetc(infp);
    putch(ch);
    fputc (ch, outfp);
  }
  return 0;
}  
  
  

'C언어 수업정리 > 5월 수업정리' 카테고리의 다른 글

5월 13일 열거형 응용  (0) 2013.05.13
5월 8일 read(), write()함수  (0) 2013.05.10
5월 7일 fread()/fwrite()  (0) 2013.05.07
5월 6일 파일1  (0) 2013.05.06
5월 6일 파일 입출력  (0) 2013.05.06
posted by 송시혁

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <process.h>
int main()
{
  FILE *fp;
  char name[20];
  int english;
  int math;
  float average;
  
  if((fp= fopen("d11-5.txt""w")) == NULL)
  {
    printf("Can not open file \"score.txt\"\n");
    exit(-1);
  }
  printf("Enter <q> at the new line, if you want to finish.\n");
  printf("enter Name, english, score, math score: ");
  scanf("%s %d %d", name, &english, &math);
  
//본격적으로 파일에 write 하는 부분
  while(1)
  {
    average = ((float) english + math)/2;
    fprintf(fp, "%s %d %d %f", name, english, math, average);
    printf("Enter <q> at the new line, if you want to finish.\n");  
    printf("Enter Name, english scorem, math score: ");
    scanf("%s", name);
    if(strcmp (name, "q"== 0)
    {
      break;
    }
    scanf("%d %d"&english, &math);
  }
  fclose(fp);
  
// 화면에 출력을 하는 부분
  if((fp=fopen("d11-5.txt""r")) == NULL)
  {
    printf("Can not open file\"score.txt\"\n");
    exit(-1);
  }
  printf("Name\tenglish maty\t average\n");

  while((fscanf(fp, "%s %d %d %f", name, &english, &math, &average))!=EOF)
  {

    printf("%s \t%d\t %d\t %3.1f\n", name, english, math, average);
  }
  fclose(fp);
  

  




  return 0;
}

1.fp를 기록한다.
2. 반복문으로 값을 입력하고 fprintf로 파일에 있는
값을 모니터에 출력한다.
3.strcmp(name,"q") 함수로 q와 scanf()로 입력받은 문자열이
 q와 같을때 반복문을 탈출하게 한다.
4. 파일에 기록한 파일을 읽어서 모니터에 다시 출력한다.
유의 사항은
1.fclose(fp);를 반드시 한다.
2. 파일을 다시 읽을때는 fscanf로 다시 읽어들여서 
   출력을 해야한다.












































'C언어 수업정리 > 5월 수업정리' 카테고리의 다른 글

5월 13일 열거형 응용  (0) 2013.05.13
5월 8일 read(), write()함수  (0) 2013.05.10
5월 7일 fread()/fwrite()  (0) 2013.05.07
5월 7일 ftell(), fseek()  (0) 2013.05.07
5월 6일 파일 입출력  (0) 2013.05.06
posted by 송시혁
prev 1 2 next