C++string的用法问题,不知道为什么用不了string类型

#include<iostream>
#include<conio.h>
#include<string>
#include<iomanip>
using std::cin;
using std::cout;
using std::endl;
using std::setw;
struct student
{
int num;
char name[15]; ////////就是这里出问题,为什么我用char可以运行,把他换成string name,他说' string' is used as a type, but is not defined as a type. 我试把struct student放在main里面也是不行,不知道为什么,求大神详细解答。。
int score[3];
};
int main()
{

student stu[30];
int i=0,j=0,k=1;
int n;
char c;
cout<<"请输入班级人数:"<<endl;
cin>>n;
cout<<"请分别输入学生学号,学生姓名,三门学生成绩:"<<endl;
while(i<n)
{
cout<<k<<setw(4)<<" ";
cin>>stu[i].num>>stu[i].name>>stu[i].score[j]>>stu[i].score[j+1]>>stu[i].score[j+2];
i++;
k++;
j=0;
}
void score_sort(student x[],int n); //A
cout<<endl;
cout<<"A:按成绩从高到低排序" <<endl;
cout<<"B:按学号从小到大排序"<<endl;
cout<<"C:查找最高分"<<endl;
cout<<"D:统计全班平均成绩"<<endl;
cout<<"请选择功能项并按字母输入:";
cin>>c;
switch(c)
{
case 'A':score_sort(stu,n);break;
default:cout<<"数据有误!";break;
}
getch();
return 0;
}
void score_sort(student x[],int n)
{
函数定义,这里没有错了,但是由于字数限制我贴不出来,大家知道这里是可以运行就可以了
}

string在C++中并不是一个基本类型,而是一个完整的字符串类。要使用需要include其头文件,并且声明使用空间如下:
#include <string>
using std::string;
using std::wstring;

using namespace std;

注意是<string>,不是<string.h>,带.h的是C语言中的头文件,标准C中处理字符串都是char*的,而不是一个专门的基础类型。这个<string.h>中包含了日常所需的处理字符串的一系列函数,但是参数都是char*类型的。
如果你是从C直接转到C++的,最好去看一下C++标准库以及面向对象的思维与实践,那样更适合平滑的过渡到C++。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-15
因为 string 是 std命名空间下的,就和cout 一样..
所以 修改的方法有两个..
1 加 命名空间 限定
std::string name;

2 使用 using
using std::string;本回答被提问者采纳
第2个回答  2013-09-15
using std::cin;
using std::cout;
using std::endl;
using std::setw;
这里都写了四个using 你就再加个
using std::string;
或者直接换成
using namespace std;
相似回答