#ifndef PERSONAL
#define PERSONAL
#include <fstream.h>
#include<string.h>
class Personal
{
public:
Personal();
Personal(char*,char*,char*,int,long);
void writeToFile(fstream&) const;
void readFromFile(fstream&);
void readKey();
int size() const
{
return 9+nameLen+cityLen+sizeof(year)+sizeof(salary);
}
bool operator==(const Personal& pr) const
{
return strcmp(pr.SSN,SSN)==0;
}
protected:
const int nameLen,cityLen;
char SSN[10],*name,*city;
int year;
long salary;
ostream& writeLegibly(ostream&);
friend ostream& operator<<(ostream& out,Personal& pr)
{
return pr.writeLegibly(out);
}
istream& readFromConsole(istream&);
friend istream& operator>>(istream& in,Personal& pr)
{
return pr.readFromConsole(in);
}
};
#endif
15 个解决方案
#1
#include <fstream.h>
//改成下面试试
#include <fstream>
using namespace std;
#2
//#include <fstream.h>
#include<string.h>
#include <iostream>
using namespace std;
这样应该就可以了!
#3
如果是用vs2008可能不能编译通过,因为fstream.h是比较旧的标准。
可以按照楼上的改下试试。
可以按照楼上的改下试试。
#4
为什么?
怎么又出现了这个错误
'strcpy' was declared deprecated
请大家帮忙解释一下
#5
这是因为VS2005中认为CRT中的一组函数如果使用不当,可能会产生诸如内存泄露、缓冲区溢出、非法访问等安全问题。这些函数如:strcpy、strcat等。 对于这些问题,VC2005建议使用这些函数的更高级的安全版本,即在这些函数名后面加了一个_s的函数。这些安全版本函数使用起来更有效,也便于识别,如:strcpy_s,calloc_s等。 当然,如果执意使用老版本、非安全版本函数,可以使用_CRT_SECURE_NO_DEPRECATE标记来忽略这些警告问题。办法是在编译选项 C/C++ | Preprocessor | Preprocessor Definitions中,增加_CRT_SECURE_NO_DEPRECATE标记即可。
#6
#include <fstream>
#include<cstring>
#include<string>
using namespace std;
#7
up,C++新标准的写法
#8
用strcpy_s(a,n);会出现如下提示'strcpy_s' : function does not take 2 arguments
请大家帮忙解释一下
请大家帮忙解释一下
#9
你不想修改代码的话,可以这样做:
在编译选项 C/C++ | Preprocessor | Preprocessor Definitions中,增加_CRT_SECURE_NO_DEPRECATE标记即可
#10
我想修代码,把strcpy修改为strcpy_s但是怎么又出现了'strcpy_s' : function does not take 2 arguments
这样应该怎么样修改
这样应该怎么样修改
#11
char *pChar = new char[iLenth+1];
strcpy_s(pChar , iLenth+1, pSrc);
第二个参数带你分配的长度即可!
#12
标准C++的写法,顶下!
#13
楼主需要换本新点的教材了。
#14
#include <fstream>
#include<cstring>
#include<string>
using namespace std;
提倡标准..
#15
#include <fstream>
#include<string>
标准C++的写法 不知道楼主的写法是从哪里看来的 那本书可以扔之
#include<string>
标准C++的写法 不知道楼主的写法是从哪里看来的 那本书可以扔之
#1
#include <fstream.h>
//改成下面试试
#include <fstream>
using namespace std;
#2
//#include <fstream.h>
#include<string.h>
#include <iostream>
using namespace std;
这样应该就可以了!
#3
如果是用vs2008可能不能编译通过,因为fstream.h是比较旧的标准。
可以按照楼上的改下试试。
可以按照楼上的改下试试。
#4
为什么?
怎么又出现了这个错误
'strcpy' was declared deprecated
请大家帮忙解释一下
#5
这是因为VS2005中认为CRT中的一组函数如果使用不当,可能会产生诸如内存泄露、缓冲区溢出、非法访问等安全问题。这些函数如:strcpy、strcat等。 对于这些问题,VC2005建议使用这些函数的更高级的安全版本,即在这些函数名后面加了一个_s的函数。这些安全版本函数使用起来更有效,也便于识别,如:strcpy_s,calloc_s等。 当然,如果执意使用老版本、非安全版本函数,可以使用_CRT_SECURE_NO_DEPRECATE标记来忽略这些警告问题。办法是在编译选项 C/C++ | Preprocessor | Preprocessor Definitions中,增加_CRT_SECURE_NO_DEPRECATE标记即可。
#6
#include <fstream>
#include<cstring>
#include<string>
using namespace std;
#7
up,C++新标准的写法
#8
用strcpy_s(a,n);会出现如下提示'strcpy_s' : function does not take 2 arguments
请大家帮忙解释一下
请大家帮忙解释一下
#9
你不想修改代码的话,可以这样做:
在编译选项 C/C++ | Preprocessor | Preprocessor Definitions中,增加_CRT_SECURE_NO_DEPRECATE标记即可
#10
我想修代码,把strcpy修改为strcpy_s但是怎么又出现了'strcpy_s' : function does not take 2 arguments
这样应该怎么样修改
这样应该怎么样修改
#11
char *pChar = new char[iLenth+1];
strcpy_s(pChar , iLenth+1, pSrc);
第二个参数带你分配的长度即可!
#12
标准C++的写法,顶下!
#13
楼主需要换本新点的教材了。
#14
#include <fstream>
#include<cstring>
#include<string>
using namespace std;
提倡标准..
#15
#include <fstream>
#include<string>
标准C++的写法 不知道楼主的写法是从哪里看来的 那本书可以扔之
#include<string>
标准C++的写法 不知道楼主的写法是从哪里看来的 那本书可以扔之