파일 출력에 대해서~
모아
[ inum+1 ] // 지금 보니깐 이게 이게 정답인듯하네요
*
**
***
****
*****
계속하려면 아무 키나 누르십시오 . . .처음에 i=num 이라고 생각하고 작성했는데 실제적으로 중첩for()문때문에
이상하게 결과가 나온것 같네요...===========================================================================================
fprintf()와 fscanf()를 가지고 만든 프로그램에 대해서 이해가 안가는 부분이 있어서 질문합니다.*
**
***
****
*****다음과 같이 * 를 가지고 가로, 높이가 5인 삼각형을 txt파일로 저장하고 txt파일을 읽어들여서 출력을 하게 만드려고 했습니다.
근데 저장까지는 제가 생각한대로 되었는데 출력할때가 제 생각대로 결과가 나오지 않았습니다.*
**
***
****
*계속하려면 아무 키나 누르십시오 . . .계속 이런 형식으로 결과가 출력되어서 도대체 뭐가 문제인지 궁리해 보았습니다.
텍스트 모드와 바이너리 모드 차이에서 온거라 생각도 해봤는데 제가 원하는 결과는 얻지 못했습니다.
이리저리 코드를 수정해보고 고민한 끝에+1부분을 추가해 봤는데 그제서야 원하는 결과를 얻을 수 있었습니다.for(i=1; i=num+1; i++){
for(j=1; j=i; j++){
fscanf(file, %c, &a);
printf(%c, a);
}
}저장한 텍스트에는
*
**
***
****
*****
- 여기부분 \n 자리가 있었음
혹이 맨 마지막 부분 때문에 프로그램 결과에 영향을 미칠수도 있는지 궁금해졌습니다.왜 프로그래머가 txt파일을 불러서 출력을할때 소스에서 지정한 범위 1~5 line까지 화면출력이 안되고
6 line에 비어있던 줄까지 모조리 불러서 화면에 출력을 해야하는이유가 궁금해졌습니다.[소스코드]
#include stdio.hint main(void)
{
int state; // error 체크 변수.
int i, j, num=5; // for 루프 변수.
char a;
//======================================파일저장
FILE * file = fopen(Test.txt, wt);//쓰기 전용 파일, text mode, 파일이름은 test.txtif(file==NULL){//file포인터 값이 null 이면
printf(file open error!\n);
return 1;//비정상적인 종료
}
for(i=1; i=num; i++){
for(j=1; j=i; j++){
fprintf(file, *);
}
fprintf(file, \n);
}
state=fclose(file);//파일의 종결if(state!=0){//state값이 0이 아니면!
printf(file close error!\n);
return 1;//비정상적인 종료
}
//======================================파일열기
file = fopen(Test.txt, rt);
if(file==NULL){
printf(file open error!\n);
return 1;
}
for(i=1; i=num+1; i++){ //여기부분을 어떻게 처리해야될까요? ㅜㅜ
for(j=1; j=i; j++){
fscanf(file, %c, &a);
printf(%c, a);
}
}state=fclose(file);
if(state!=0){
printf(file close error!\n);
return 1;
}
system(PAUSE);
return 0;
}