大佬们好,想请问大佬们一个问题,为什么我这个代码在运行的时候,显示符号两端不匹配?

#include
using namespace std;
#include

class student
{
public:
string name;
int num;
void showname()
{
cout << name <<endl;
}
void shownum()
{
cout << num <<endl;
}
};

int main()
{
student s1;
s1.name="张三";
s1.num=18;

cout << "学生的姓名:"<<s1.showname() << "学生的年龄: " <<s1.shownum()<<endl;
//<<两端不匹配
return 0;

}

#include<iostream>
#include<string>
using namespace std;
class student
{
public:
    string name;
    int num;
};

int main()
{
    student s1;
    s1.name="张三";
    s1.num=18;
    cout << "学生的姓名:"<<s1.name << "学生的年龄: " <<s1.num<<endl;
    return 0;
}

或者





#include<iostream>
#include<string>
using namespace std;
class student
{
public:
    string name;
    int num;
    void showname()
    {
        cout<<name<<endl;
    }
    void shownum()
    {
        cout << num <<endl;
    }
};

int main()
{
    student s1;
    s1.name="张三";
    s1.num=18;
    cout << "学生的姓名:";
    s1.showname();
    cout << "学生的年龄: ";
    s1.shownum();
    return 0;
}