C언어

파일읽어서 배열에 넣고 다시배열에서 읽어서 화면에 출력

by 정체불명 posted Jan 21, 2012
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
 파일읽어서 배열에 넣고 다시배열에서 읽어서 화면에 출력

그런데 한글을 출력하면 가장왼쪽에 여백이 한칸 생기네요
GCC라서그런건지 잘 모르겟어요
gotoxy(x*2,y);식으로하지 않아도
그냥 잘 출력되는것도 좀 다른거같구요
Visual Stduio말고
Eclipse CDT + MinGW로 컴파일햇습니당

한번 어떻게 구현할지 생각해보시고 코드를 봐보세요

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <windows.h>
void gotoxy(int x, int y)
{
COORD Cur;
Cur.X=x;
Cur.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Cur);
}

int FromFileToArray(int ar[][100], char * filename)
{
FILE *fp;
int ch;
int x,y;
fp = fopen(filename,"rt");
if(fp==0)
return 1;//파일을 못찾았어요
else
{
x=0;
y=0;
while((ch=getc(fp)) != EOF)
{
ar[y][x]=ch;
if(ch=='\n')
{
y++;
x=0;
}
else
x++;
}
ar[y][x]=EOF;
}
return 0;
}
void FromArrayToScreen(int ar[][100])
{
int y,x;
for(y=0;y<30;y++)
{
for(x=0;x<100;x++)
{
if(ar[y][x]==EOF)
return;
if(ar[y][x]=='\n')
break;
else
{
gotoxy(x,y);
putc(ar[y][x],stdout);
}
}
}
}
int main()
{
int map[30][100];
FromFileToArray(map,"map.txt");
FromArrayToScreen(map);
getchar();
return 0;
}