#include<iostream>显示c++错误但是只让交. c文件我应该怎么改啊

 

这行去掉,平时输入输出用scanf printf

#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include<iostream>
#include<algorithm>
#include "stdlib.h"
#include "string.h"



struct book//定义一个结构体
{
	int number;
	char name[50];
	char bianhao[50];
	char writer[50];
	char where[50];
};bool comp(book a,book b)//sort函数的定义前提,即选择升序以及利用哪个参数比较
	{
		return a.bianhao<b.bianhao;
	}
struct lib
{
	struct book data[1000];
	int sz;
};

void menu()
{
	printf("\t***************************\n");
	printf("\t0.退出系统\n");
	printf("\t1.登记书籍\n");
	printf("\t2.查找书籍\n");
	printf("\t3.删除书籍\n");
	printf("\t4.排序\n");
	printf("\t***************************\n");
}

//初始化图书系统
void initsys(struct lib*p)
{
	memset(p->data, 0, sizeof(p->data));//初始化一个空间
	p->sz = 0;
}
//登记书籍
void addsys(struct lib*p)
{
	p->data[p->sz].number = p->sz+1;
	printf("请输入书籍的名字");
	scanf("%s", p->data[p->sz].name);
	printf("请输入书籍的编号");
	scanf("%s", (p->data[p->sz].bianhao));
	printf("请输入书籍的作者");
	scanf("%s", (p->data[p->sz].writer));
	printf("请输入书籍的出版社");
	scanf("%s", (p->data[p->sz].where));
	printf("登记成功");
	p->sz++;
}

//找到对应的下标并返回
int findname(struct lib*p, char bianhao[])
{
	int i = 0;
	for (i = 0; i < p->sz; i++)
	{
		if (strcmp(p->data[i].bianhao,bianhao) == 0)//trcmp函数比较两个struct lib*p字符串,如果两个一样就返回i,如果不一样就是-1。
			return i;
	}
			return -1;
		
	
}
//查找书籍
void searchsys(struct lib*p)
{
	char bianhao[50];
	int t;
		printf("请输入所要查找的书的编号\n");;
	scanf("%s",bianhao);
	 t=findname(p, bianhao);//调用函数,利用函数返回给t的值	
	if (t == -1)
		printf("所要查找的书籍不存在\n");
	else
	{
		printf("%-15d\t%-20s\t%-20s\t%-15s\n", p->data[t].number, p->data[t].name,p->data[t].writer, p->data[t].where);
	}
}
//删除书籍
void deletesys(struct lib *p)
{
	char bianhao[50];
	int t ;int i = 0;
	printf("请输入要删除的书籍的编号");
	scanf("%s",bianhao);
	t=findname(p, bianhao);////调用函数,利用函数返回给t的值	
	if(t==-1)
		printf("没有这本书呢亲");
	else
	{
	for (i = t; i < p->sz - 1; i++)
	{
		p->data[i] = p->data[i + 1];//利用下一本书的信息顶替上一本书达到删除的目的

	}
	p->sz--;
	printf("已删除");
	}

}
//排序
void ranksys(struct lib*p)
{
	int i;
	book sk[50];
	sort(sk+1,sk+p->sz+1,comp);//在开始地址到最早地址自动排序
	for(i=0;i<p->sz+1;i++)
				printf("%-15d\t%-20s\t%-20s\t%-15s\n", p->data[i].number, p->data[i].name,p->data[i].writer, p->data[i].where);
}
int  main()
{
	int input = 0;
	struct lib sys;
	initsys(&sys);

	do
	{
		menu();
		printf("请选择:>\n");
		scanf("%d", &input);
	
		switch (input)//switch语句选择五个功能
		{
		case 0:
			printf("退出系统\n");
			break;
		case 1:
			printf("【登记】\n");
			addsys(&sys);
			break;
		case 2:
			printf("【查找】\n");
			searchsys(&sys);
			break;
		case 3:
			printf("【删除】\n");
			deletesys(&sys);
			break;
		case 4:
			printf("排序\n");
			ranksys(&sys);
		default:
			printf("输入错误,请重新输入");
			break;
		}
		system("pause");//冻结屏幕看到结果
		system("cls");//清空屏幕
		
	} while (input);
}