글을 보고 무슨 말씀이신지 몰라.. 한번 더 읽었습니다.. ㅎㅎ
fprintf(fp, "Subject : %10s\nAuthor : %10s\nCompany : %10s\nKeyworld : %10s\nISBN_Number: %10s\n\n", Search[i].Subject, Search[i].Author,
Search[i].Company, Search[i].Keyworld, Search[i].ISBN_Number);
이것 때문에 그러시는 군요. %10s 라서 뒤에서부터 맞춘다는 말씀이시죠? 그냥 %s로 바꾸어보십시오.
시작하는 위치를 동일하게 하시려면 \t (탭)을 사용해서 정렬을 맞출수도 있습니다. (\t\t %s)
물론 더 자세한 내용은 printf의 도움말에 나옵니다. 참조하시구요...
지금 Size를 10으로 하셨는데, ISBN에서 문제의 소지가 있습니다.
예시하신 수치가 정확히 10개의 수로 구성되어 있습니다. 그러므로 젤 마지막의 널문자까지 11개의 저장장소가
필요합니다. 그리고 요즘은 메모리 충분히 넉넉합니다. 딱 맞추어 사이즈 지정하면 오류의 소지가 있습니다.
넉넉한 수준으로... 예를 들어 5가지 정보 X 10 byte = 50 byte가 한권의 정보라면 메모리에
백만권의 정보가 있다면 50 X 백만 = 5천만 byte입니다. 이는 5만 Kbyte = 50 Mbyte 이지요.
50메가라면 이미지 큰거 한장 메모리에 올리는 것도 안됩니다. ^^.
정구일 님이 쓰신 글 :
: 먼저 외랑님 정말 감사드립니다.
: 아직 초보라서 많이 모르는데 많은 도움이 되었습니다.
: 아! 그리고 Warining 만 고치면 적히는줄 알았습니다. ^^;
: 외랑님께서 말씀하신거 고치고... 이것 저것 손좀 봤더니...
: 이상 없이 잘 돌아갑니다.
: 그런데 여기서 궁금점이 하나더 생겼습니다.
: Size를 10으로 지정을 해서 저장된 파일을 확인하면...
: 이렇게나옵니다.
: Subject : C++기초
: Author : 이승철
: Company : 생능
: Keyworld : C++
: ISBN_Number: 12312321321
: Size 로 인해 뒤로 정렬이 됩니다.
: 앞으로 정렬 하는 방법이 없을까요?
: 어떻게 해야 하는지 조언 부탁드립니다.
: 내일이 수능이라서 날씨가 많이 추워졌습니다.
: 감기조심하세요^^*
:
: #include <stdio.h>
: #include <stdlib.h>
:
: FILE *fp;
:
: struct library
: {
: char Subject[10];
: char Author[10];
: char Company[10];
: char Keyworld[10];
: char ISBN_Number[10];
: };
:
: int main(void)
: {
: struct library Search[10];
: int i;
:
: if ((fp = fopen("LibraryList.txt", "w")) == NULL)
: {
: printf("Cannot Open File");
: exit(1);
: }
:
: for (i=0; i<10; i++)
: {
: printf("제목을 입력하세요 : ");
: scanf("%s", &Search[i].Subject);
:
: printf("저자를 입력하세요 : ");
: scanf("%s", &Search[i].Author);
:
: printf("출판사를 입력하세요 : ");
: scanf("%s", &Search[i].Company);
:
: printf("키워드를 입력하세요 : ");
: scanf("%s", &Search[i].Keyworld);
:
: printf("ISBN을 입력하세요 : ");
: scanf("%s", &Search[i].ISBN_Number);
:
: fprintf(fp, "Subject : %10s\nAuthor : %10s\nCompany : %10s\nKeyworld : %10s\nISBN_Number: %10s\n\n",
: Search[i].Subject,
: Search[i].Author,
: Search[i].Company,
: Search[i].Keyworld,
: Search[i].ISBN_Number
: );
: }
: fclose(fp);
: return(0);
: }
|