|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


3198, 1/160 |
![]() |
![]() |
![]() |
![]() |
|
jj4st13 | ||||||
|
ÆÄÀÏÀÔÃâ·Â Áú¹®.... | ||||||
|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3230 [º¹»ç]
Hit : 3923 Date : 2011/12/04 04:16
|
|||||||
| ![]() |
| |
| prosthetics | /* fscanf¿¡¼ f1۸¦ ´©¸£¸é µµ¿ò¸»ÀÌ ³ª¿É´Ï´Ù. http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=KO-KR&k=k(%22STDIO%2fFSCANF%22);k(FSCANF);k(DevLang-%22C%2B%2B%22);k(TargetOS-WINDOWS)&rd=true If an error occurs, or if the end of the file stream is reached before the first conversion, the return value is EOF for fscanf and fwscanf. fscanf´Â ÆÄÀÏÀÇ ³¡À» ¸¸³ª¸é EOF¸¦ ¹ÝȯÇÕ´Ï´Ù. fp==nullÀÌ ¾Æ´Õ´Ï´Ù. ¾Æ·¡Ã³·³ ¹Ù²ãÁÖ¼Å¾ß ÇÕ´Ï´Ù. if(fscanf(fp,"%d",&score)==EOF);// return -1;// fp´Â Ç×»ó ÆÄÀÏÀÇ ½ÃÀÛÁÖ¼Ò¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. fopenÀ» ÅëÇØ ¸Þ¸ð¸®¿¡ ¿Ã¶ó¿Â ÁÖ¼Ò ¸»ÀÔ´Ï´Ù. fscnf, fprintf°°Àº ÇÔ¼ö¸¦ »ç¿ëÇØµµ fp°ªÀº ÇѰᰰÀÌ ÆÄÀÏÀÇ ½ÃÀÛÁÖ¼Ò¸¦ °¡¸®Åµ´Ï´Ù. ÆÄÀÏÀÇ À§Ä¡¸¦ °¡¸®Å°´Â°ÍÀº µû·ÎÀÖ½À´Ï´Ù. fscanf³ª fprintf°°ÀÌ ÆÄÀÏ¿¡ Àбâ, ¾²±â ¸í·ÉÀ» ³»¸®¸é ÀÚµ¿À¸·Î ´ÙÀ½ ´Ü¾î·Î ³Ñ°¡¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î "10 20 30"°¡ ÆÄÀÏ¿¡ ÀúÀåµÇ¾îÀִµ¥ fscanf(fp,"%d",&score);¿Í °°Àº ¸í·ÉÀ» »ç¿ëÇß´Ù¸é score¿¡ 10ÀÌ µé¾î°¡¾ß °ÚÁö¿ä. ±× ´ÙÀ½¿¡ À§ ¸í·ÉÀ» ´Ù½Ã Çѹø ½ÇÇàÇϸé score¿¡´Â 20ÀÌ µé¾î°¡¾ß ÇÕ´Ï´Ù. ÀÌ·¸°Ô ÀÚµ¿À¸·Î ´ÙÀ½ À§Ä¡¸¦ ±â¾ïÇÏ´Â °ÍÀ» offsetÀ̶ó°í ºÎ¸¨´Ï´Ù. offsetÀº ÆÄÀÏ Àбâ, ¾²±â¿Í °°Àº ¸í·ÉÀ» ³»¸®¸é ÀÚµ¿À¸·Î Áõ°¡ÇÕ´Ï´Ù. À̰ÍÀ» Á¶ÀýÇϱâ À§ÇØ fseek()¶ó´Â ÇÔ¼ö°¡ ÀÖ½À´Ï´Ù. (www.winapi.co.kr ->C/C++·¹ÆÛ·±½º) °ªÀÌ ÁöÁ¤¾ÈµÈ gradeÀü¿ªº¯¼ö¿¡ Á¢±ÙÇÏ´Â ³í¸®Àû ¿À·ùµµ º¸À̴µ¥ ¾ÆÁ÷ ÇÁ·Î±×·¥ ¿Ï¼º ¾ÈÇÏ½Å°Í °°À¸´Ï±î ¾Ë¾Æ¼ °íÄ¡½Ç°Å¶ó ¹Ï½À´Ï´Ù. */ #include <stdio.h> #include <string.h> int read_score(FILE *fp);// char set_grade(int score, int grade_count[]); char grade; int main() { int total = 0;// int count = 0;// int i;// int grade_count[5] = {0,0,0,0,0}; int score; FILE *fp; fp = fopen("text.txt","r"); printf("Á¡¼öÃâ·Â(-1Àº Á¡¼öÀÔ·Â ³¡) \n\n"); while(1) { score = read_score(fp);//ÀÔ·ÂÇÒ ¼ºÀû ºÎ¸£´Â ÇÔ¼ö printf("%d\n",score);//ÇØ´ç Á¡¼ö Ãâ·Â if(score == -1) break; else { //ÀÔ·ÂÇÑ ¼ºÀû¿¡ ÇØ´çÇÏ´Â ÇÐÁ¡À» ¹è¿¿¡ Ãß°¡ÇÏ´Â ÇÔ¼ö set_grade(score, grade_count); total+=score; count++; } } fclose(fp); if(count==0) printf("ÀÔ·ÂÀÌ ¾ø½À´Ï´Ù.\n"); else { printf("ÀÔ·ÂÇϽŠÁ¡¼öÀÇ ÃÑÇÕÀº %d ÀÔ´Ï´Ù.\n",total); printf("ÀÔ·ÂÇϽŠÁ¡¼öÀÇ Æò±ÕÀº %d ÀÔ´Ï´Ù.\n\n",total/count); printf("A B C D F\n"); for(i = 0; i < 5; ++i) printf("%d ", grade_count[i]); printf("\n"); } return 0; } int read_score(FILE *fp) { int score; if(fscanf(fp,"%d",&score)==EOF);// return -1;// //if(fp == NULL)//ÆÄÀÏ¿¡ Á¡¼ö°¡ ¾ø°Å³ª // return -1;//ÆÄÀÏÀÔ·ÂÀÌ ³¡³ª¸é -1 ¹Ýȯ fscanf(fp,"%d",&score); while(score>100 || score<-1) fscanf(fp,"%d",&score); printf("%c\n\n",grade);//ÇÐÁ¡Ãâ·Â return score; } //°¢score¿¡ ´ëÇÑ Á¡¼ö¸¦ ¹è¿¿¡ ÀúÀå char set_grade(int score, int grade_count[]) { switch (score / 10){ case 10: grade = 'A'; grade_count[0]++; break; case 9: grade = 'A'; grade_count[0]++; break; case 8: grade = 'B'; grade_count[1]++; break; case 7: grade = 'C'; grade_count[2]++; break; case 6: grade = 'D'; grade_count[3]++; break; default: grade = 'F'; grade_count[4]++; break; } return grade; } |
2011/12/04 | |
|
|