파일에서 불러올때.
신당
파일 불러오는도중에 오류는안나는데
아무 출력도 나오지가않네요 .
뭐가 문제인지좀 알려주시면 감사하겠습니다.
소스는 아래에있어요
txt 로 filename_ 1
와
rg가있구요
filename_ 1에는
111111111111111
100000000000001
100000000000001
100000000000001
100000000000001
100000000000001
100000000000001
100000000000001
100000000000001
100000000004001
100000000000001
100000000000001
100000000000001
100000000000001
111111111111111
이 써져있구요
rg에는 1이 써져있어요 ^^#include stdio.h
#include stdlib.h
#include string.h
#include conio.h
#include windows.h
FILE *load;
FILE *save;
int map_[15][15];
int number;
char filename[128]=map;
void numberload(){
load=fopen(rg.txt,rt);
if(load==NULL){
fclose(load);
number=1;
}else{
fscanf(load,%d,&number);
fclose(load);
number--;
}
}
int string[100][100];
void mapload(){
int i,j;
sprintf( filename , filename_%2d.txt, number);
load=fopen(filename,t);
if(load==NULL){
}else{
for(i=0;i15;i++){
for(j=0;j15;j++){
fscanf(load,%d,&map_[i][j]);
}
}
fclose(load);
}
}
void mapsee(){//맵보기
int i,j;
for(i=0;i20;i++){
for(j=0;j15;j++){
if(map_[i][j]==0){
printf( );}
if(map_[i][j]==1){
printf(■);}
if(map_[i][j]==2){
printf(&);}
if(map_[i][j]==3){
printf(◎);}
&nbsbsp; if(map_[i][j]==4){
printf(●);}
if(map_[i][j]==5){
printf(※);}
}
printf(\n);
}
}
int main()
{
numberload();
while(1);
mapload();
mapsee();
system(cls);
}
그리고요
저 filename .txt에서 불러올떄요
만약에
1 1 11111111 입력받은 [2][2] 값이 23이면
123 11111111 여기처럼 23이 두자리수자나요
1 1 11111111그럴때는 어떻게불러오면 될까요 ??
-
미쿡
조언3: 정수를 계속해서 비교할 때는 if노가다보다는 switch~case문이 보기 좋습니다.
예:
if(a == 1)
printf(\1\);
else if(a == 2)
printf(\2\);
else if(a == 3)
printf(\3\);
보다는
switch(a)
{
case 1:
printf(\1\);
break;
case 2:
printf(\2\);
break;
case 3:
printf(\3\);
break;
}
가 훨씬 낫습니다. -
티나
조언2: if문에 사용할 코드가 한 문장이면 중괄호가 없어도 됩니다.
예:
if(a == 10){
printf(\10\);}
else{
printf(\N10\);}
할 필요 없이
if(a == 10)
printf(\10\);
else
printf(\N10\); -
제철
조언: 한 함수에서 사용하고 말 거면 지역변수로 선언하세요.