为这么这里输入0 0 0并不能控制循环结束

Book book[1000];//定义图书存储空间
	int count = 0;
	bool tag = true;
	while (tag) {
		cout << "请输入书号,书名和价格(中间以空格符隔开),以0 0 0结束" << endl;
		cin >> book[count].no;
		cin >> book[count].name;
		cin >> book[count].price;
		if (book[count].no == 0 && book[count].name == 0 && book[count].price == 0) { tag = false; }
		count++;
		if (count == M) { tag = false; }
	}

 

book[count].name 应该是一个字符数组吧,不能直接book[count].name == 0

改成:

strcmp(book[count].name,"0") == 0