나는 책 목록을 유지하는 프로그램을 작성하고 있으며, 텍스트 파일에서 책 목록을 읽고 추가 책을 파일에 씁니다. 파일에 새 책을 추가해야하지만 각 책 항목 사이에 빈 줄을 넣고 싶습니다. 어떻게해야합니까? 유용하거나 필요할 수있는 다른 정보 : 제목, 저자 및 ISBN을 모두 문자열로 유지하는 구조를 사용하고 있습니다.텍스트 파일에 빈 줄을 쓰는 방법은 무엇입니까?
여기에 새 데이터를 수집하는 부분이 있습니다. 링크 된 목록에 삽입됩니다. 관련 부분
input_file = fopen("library.txt", "w");
printf("Printing list to file...\n");
while(current != NULL)
{
fprintf(input_file,"%s%s%s", current->title, current->author, current->ISBN);
//fputs(newline, input_file);
}
:
puts("Enter first book title.");
while(fgets(input, 80, stdin) != NULL && input[0] != '\n')
{
current = (struct book *)malloc(sizeof(struct book));
if(head == NULL)
head = current;
else
prev->next = current;
current->next = NULL;
strcpy(current->title, input);
puts("Enter the author.");
fgets(current->author, 80, stdin);
puts("Enter the ISBN.");
fgets(current->ISBN, 80, stdin);
puts("Enter next book title (empty line to quit)");
prev = current;
}
다음은 파일에 기록하는 부분입니다. 주석 처리 된 부분은 시도했지만 이미 개간 된 줄 바꿈을 사용하여 이미 형식이 잘 정립 된 데이터를 엉망으로 만듭니다. 나는 책을 추가하고 프로그램이 파일에 쓸 때
Title 1
Last, First
000000 (ISBN)
Title 2
Last, First
111111
etc.
, 그것은 다음과 같이 추가한다 (명확성을 위해 ISBN을 왼쪽 : 다음은 텍스트 파일을 보는 방법의 작은 예 (착색 무시를)입니다) :
...
Title 2
Last, First
First Added Book
Last, First
Second Added Title
Last, First
etc.
어떻게 각 책 항목 사이에 빈 줄을 가져올 수 있습니까?
'는 fgets()는'('\ n'') 문자가 추가 여분의 줄 바꿈하여 데이터를 받고있다. 파일에 인쇄하면 그 파일이 옮겨집니다. 파일의 빈 줄은 다른 문자가없는 줄 바꿈 문자입니다. –
'while'에'fputs ("\ n", input_file);을 추가하십시오. – OiciTrap
\ n을 추가하려고 시도했지만 추가 된 책뿐만 아니라 텍스트 파일에 줄 바꿈이 더 많이 추가되었습니다. –