用c++创建一个文档管理器,可以在这个管理器中存储一些文档模板
时间: 2023-05-23 18:07:09 浏览: 68
A:好的,以下是一个简单的文档管理器实现,可以存储一些文档模板。它使用C语言的文件操作函数来读取和写入文档,以及链表来存储文档信息。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Document {
char name[100];
char content[1000];
struct Document* next;
} Document;
Document* head = NULL;
void addDocument() {
Document* newDoc = (Document*) malloc(sizeof(Document));
printf("Enter document name: ");
fgets(newDoc->name, 100, stdin);
printf("Enter document content: ");
fgets(newDoc->content, 1000, stdin);
newDoc->next = head;
head = newDoc;
}
void saveDocuments() {
FILE* file = fopen("documents.txt", "w");
if (file == NULL) {
printf("Error: could not open file\n");
return;
}
Document* current = head;
while (current != NULL) {
fprintf(file, "%s\n", current->name);
fprintf(file, "%s\n", current->content);
current = current->next;
}
fclose(file);
}
void loadDocuments() {
FILE* file = fopen("documents.txt", "r");
if (file == NULL) {
printf("Error: could not open file\n");
return;
}
char name[100];
char content[1000];
while (fgets(name, 100, file) != NULL) {
fgets(content, 1000, file);
Document* newDoc = (Document*) malloc(sizeof(Document));
strcpy(newDoc->name, name);
strcpy(newDoc->content, content);
newDoc->next = head;
head = newDoc;
}
fclose(file);
}
void printDocuments() {
Document* current = head;
while (current != NULL) {
printf("Name: %s", current->name);
printf("Content: %s", current->content);
current = current->next;
}
}
int main() {
loadDocuments(); // load existing documents from file
printf("Document Manager\n");
printf("----------------\n");
while (1) {
printf("1. Add document\n");
printf("2. Save documents\n");
printf("3. Print documents\n");
printf("0. Exit\n");
int choice;
printf("Enter choice: ");
scanf("%d", &choice);
getchar(); // consume newline left by scanf
switch (choice) {
case 1:
addDocument();
break;
case 2:
saveDocuments();
break;
case 3:
printDocuments();
break;
case 0:
exit(0);
default:
printf("Invalid choice\n");
}
printf("\n");
}
return 0;
}
```
这个管理器允许用户添加,打印和保存文档。当程序运行时,它会自动加载之前保存的文档,如果存在的话。 所有文档会在程序退出时保存到磁盘上,以便下次使用。