C 프로그래밍 공부하고 있습니다.
과제로 나온 것이
텍스트파일로 저장되어 있는 미로 파일
(c:\사용자\architect\내문서\visual studio 2010\ projects\hh\TextFile1.txt)
XXXXXXXXXXXXXXXIXXX
X X
X XXXXXXXXXXXXXXXXX
X X X
X XXX XXXXX X X X X
X X X X X X X X
X X X XXX X X X X X
X X X X X X X
XXXXXXXXXXXOXXXXXXX
과 같은 것을 입력 받아서
동적 할당으로 배열에 저장을 시키는 것입니다.
파일입출력은 공부를 워낙 하지 않아서 잘모르겠어요, ㅠㅠ 형식은 알겠어서 다음과 같은 코드를 작성하였습니다.
절대경로, 상대경로 파일 입출력, command line argument 이런 것들을 하는 방법은 알겠는데 실행하면 어떻게든 오류를 뿜어내네요.
#include <stdio.h>
#include <malloc.h>
int main()
{
int max_column=0 ,row=0 , column=0 ;
int i;
char d;
char *abc;
char **ab;
FILE *fp;
fp= fopen("TextFile1.txt","r");
if (fp==NULL)
printf("파일 잘못 열음여");
while((d=getc(fp))!=EOF)
{
if((d)!='\n')
{
column++;
}
if(d=='\n')
{
row++;
if(column>max_column)
{
max_column=column;
}
column=0;
}
}
fclose(fp);
abc = (char *)malloc(max_column*(row+1)*sizeof(char));
ab= (char **)malloc((row+1)*sizeof(char));
for(i=0;i<(row+1);i++)
{
ab[i]=(abc+(max_column*i));
}
fp = fopen("TextFile1.txt", "r");
for(i=0;i<(row+1);i++)
{
fgets(ab[i],max_column,fp);
}
for(i=0;i<(row+1);i++)
{
puts(ab[i]);
}
fclose(fp);
return 0;
}
동적 할당을 위해서 파일을 두번 입출력 하였는데요.
텍스트 파일은
c:\사용자\architect\내문서\visual studio 2010\ projects\hh\ghg (프로젝트명 hh, 이고 소스명 ghg입니다.)
상에 저장을 시켰는데 안되서
비쥬얼 스튜디오 상에서 텍스트 파일을 생성하는것이 있어서 그렇게 햇는데도 안되더라구요.
이렇게 실행시키면
한자 4개가 나오고 또 깨진글자가 추가로 5개 정도 더해서 나옵니다.
command line argument 로 파일명을 입력시키면 파일 입력시에 오류가 발생해서 파일포인터에 null저장되서 오류를 뿜더라구요.
분명 경로에 맞는 파일 저장했다고 생각되고 안되며는 절대경로로 해봐도 절대 안되요 ..
절대안되서 절대경로인가. ㅠㅠ
도와주세요