c++代码问题
头文件(jj.h)intlen(strings);//如果在上面加入#include<string>还是运行不了stringmid2(strings,inta,intb)...
头文件(jj.h)
int len(string s);//如果在上面加入#include <string>还是运行不了
string mid2(string s,int a,int b);
头文件函数声明文件(jj.cpp)
#include <iostream>
#include <string>
#include "jj.h"
using namespace std;
int len(string s)
{return (s.length());}
string mid2(string s,int a,int b)
{int i;string c;
for(i=a-1;i<=a-1+b-1;i++)
c=c+s[i];
return c;
}
主程序文件(cmain)
#include <iostream>
#include <string>
#include "jj.h"
using namespace std;
int main()
{string s;s="abcdefg";int i;
for(i=1;i<=len(s);i++)
cout<<mid2(s,i,1);
system("pause");return 0;
}
错误如下:
--------------------Configuration: c - Win32 Debug--------------------
Compiling...
cmain.cpp
e:\vc\c\jj.h(1) : error C2065: 'string' : undeclared identifier
e:\vc\c\jj.h(1) : error C2146: syntax error : missing ')' before identifier 's'
e:\vc\c\jj.h(1) : error C2059: syntax error : ')'
e:\vc\c\jj.h(2) : error C2146: syntax error : missing ';' before identifier 'mid2'
e:\vc\c\jj.h(2) : error C2501: 'string' : missing storage-class or type specifiers
e:\vc\c\jj.h(2) : fatal error C1004: unexpected end of file found
jj.cpp
e:\vc\c\jj.h(1) : error C2065: 'string' : undeclared identifier
e:\vc\c\jj.h(1) : error C2146: syntax error : missing ')' before identifier 's'
e:\vc\c\jj.h(1) : error C2059: syntax error : ')'
e:\vc\c\jj.h(2) : error C2146: syntax error : missing ';' before identifier 'mid2'
e:\vc\c\jj.h(2) : error C2501: 'string' : missing storage-class or type specifiers
e:\vc\c\jj.h(2) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
c.exe - 12 error(s), 0 warning(s)
我也找不出是什么原因,请各位c++高手们帮个忙,谢谢 展开
int len(string s);//如果在上面加入#include <string>还是运行不了
string mid2(string s,int a,int b);
头文件函数声明文件(jj.cpp)
#include <iostream>
#include <string>
#include "jj.h"
using namespace std;
int len(string s)
{return (s.length());}
string mid2(string s,int a,int b)
{int i;string c;
for(i=a-1;i<=a-1+b-1;i++)
c=c+s[i];
return c;
}
主程序文件(cmain)
#include <iostream>
#include <string>
#include "jj.h"
using namespace std;
int main()
{string s;s="abcdefg";int i;
for(i=1;i<=len(s);i++)
cout<<mid2(s,i,1);
system("pause");return 0;
}
错误如下:
--------------------Configuration: c - Win32 Debug--------------------
Compiling...
cmain.cpp
e:\vc\c\jj.h(1) : error C2065: 'string' : undeclared identifier
e:\vc\c\jj.h(1) : error C2146: syntax error : missing ')' before identifier 's'
e:\vc\c\jj.h(1) : error C2059: syntax error : ')'
e:\vc\c\jj.h(2) : error C2146: syntax error : missing ';' before identifier 'mid2'
e:\vc\c\jj.h(2) : error C2501: 'string' : missing storage-class or type specifiers
e:\vc\c\jj.h(2) : fatal error C1004: unexpected end of file found
jj.cpp
e:\vc\c\jj.h(1) : error C2065: 'string' : undeclared identifier
e:\vc\c\jj.h(1) : error C2146: syntax error : missing ')' before identifier 's'
e:\vc\c\jj.h(1) : error C2059: syntax error : ')'
e:\vc\c\jj.h(2) : error C2146: syntax error : missing ';' before identifier 'mid2'
e:\vc\c\jj.h(2) : error C2501: 'string' : missing storage-class or type specifiers
e:\vc\c\jj.h(2) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
c.exe - 12 error(s), 0 warning(s)
我也找不出是什么原因,请各位c++高手们帮个忙,谢谢 展开
6个回答
展开全部
使用多个文件进行C/C++程序设计时,弄乱了,main.cpp和jj.cpp都调用 ,有问题可以来 0x30 百度贴吧 直接发贴问,百度知道不常在,可能收不到追问消息。
//jj.h的内容
#include <iostream>
#include <string>
using namespace std;
int len(string s);
string mid2(string s, int a, int b);
//jj.cpp的内容
#include "jj.h"
int len(string s)
{return (s.length());}
string mid2(string s,int a,int b)
{int i;string c;
for(i=a-1;i<=a-1+b-1;i++)
c=c+s[i];
return c;
}
//main.cpp的内容
#include "jj.h"
int main()
{
string s="abcdefg";
int i;
for(i=1;i<=len(s);i++)
cout<<mid2(s,i,1);
system("pause");
return 0;
}
//jj.h的内容
#include <iostream>
#include <string>
using namespace std;
int len(string s);
string mid2(string s, int a, int b);
//jj.cpp的内容
#include "jj.h"
int len(string s)
{return (s.length());}
string mid2(string s,int a,int b)
{int i;string c;
for(i=a-1;i<=a-1+b-1;i++)
c=c+s[i];
return c;
}
//main.cpp的内容
#include "jj.h"
int main()
{
string s="abcdefg";
int i;
for(i=1;i<=len(s);i++)
cout<<mid2(s,i,1);
system("pause");
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <string>
using std::string;
或者把所有的string手动替换成std::string……
当然如果你不打算把这个文件给别人用,也不打算重用这个文件,或者相信把std命名空间的所有变量和函数引入程序不会对程序造成任何副作用(例如使用自己写的sort函数可能会错误调用std命名空间的sort函数),写成
#include <string>
using namespace std;
也是可以解决这个问题的……
using std::string;
或者把所有的string手动替换成std::string……
当然如果你不打算把这个文件给别人用,也不打算重用这个文件,或者相信把std命名空间的所有变量和函数引入程序不会对程序造成任何副作用(例如使用自己写的sort函数可能会错误调用std命名空间的sort函数),写成
#include <string>
using namespace std;
也是可以解决这个问题的……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把using namespace std; 放进头文件中的#include <string>下面试试呢
你的头文件里也使用string,而头文件却没有声明using namespace std;
你的头文件里也使用string,而头文件却没有声明using namespace std;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在jj.h头文件中加入对iostream的引用即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询