| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12708 人关注过本帖
标题:一个关于strcpy_s的问题
只看楼主 加入收藏
wenkaiche
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-5-24
结帖率:100%
收藏
已结贴  问题点数:7 回复次数:7 
一个关于strcpy_s的问题
#include<cstring>
#include<iostream>
using namespace std;
class score
{int no;
char name[8];
int math;
int phi;
int data;
int ave;
public:
void write(int a,int b,int c,int d,char*p)
{no=a;math=b;phi=c;data=d;strcpy_s(name,p);name[sizeof(name)-1]='\0';}
void average()
{ave=(math+phi+data)/3;}
void display(score m)
{cout<<"学号"<<m.no<<"姓名"<<name<<"数学"<<m.math<<"物理"<<m.phi<<"数据结构"<<m.data<<"平均分"<<m.ave<<endl;}
};
int main()
{score s[3];
s[1].write(1001,80,70,60,"zhou");
s[1].average;
s[2].write(1002,90,80,85,"chen");
s[2].average;
s[3].write(1003,70,75,89,"wang");
s[3].average;
s[1].display(s[1]);
s[2].display(s[2]);
s[3].display(s[3]);
}
下面是报错信息:
E:\C程序\类和对象\2.cpp(13) : error C2065: 'strcpy_s' : undeclared identifier
E:\C程序\类和对象\2.cpp(22) : warning C4551: function call missing argument list
E:\C程序\类和对象\2.cpp(24) : warning C4551: function call missing argument list
E:\C程序\类和对象\2.cpp(26) : warning C4551: function call missing argument list
E:\C程序\类和对象\2.cpp(30) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.

2.obj - 1 error(s), 4 warning(s)
为什么头文件加了cstring,strcpy还没法用?warning C5551:---啥意思?我用的c++6.0
搜索更多相关主题的帖子: 姓名 zhou 数学 
2011-05-24 20:49
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:7 
strcpy_s这个不是标准库里的函数吧,把后缀_s去掉

迭代的是人,递归的是神。
2011-05-24 21:42
fly2xj
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-27
收藏
得分:0 
strcpy_s 是strcpy的安全版. 定义在string.h里面.
2011-05-24 23:12
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
同意二楼,反对三楼
2011-05-25 08:04
wenkaiche
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-5-24
收藏
得分:0 
回复 4楼 rjsp
strcpy_s怎么用啊?我的C++课本里写的头文件要加<cstring>可是加了还是不能用啊?我的C++课本里用的都是strcpy_s,根本没出现strcpy。。
2011-05-25 17:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用wenkaiche在2011-5-25 17:27:59的发言:

strcpy_s怎么用啊?我的C++课本里写的头文件要加可是加了还是不能用啊?我的C++课本里用的都是strcpy_s,根本没出现strcpy。。
第一点,C++中没有 strcpy_s;strcpy_s是VC私有的。
        如果C++课本用strcpy_s,只能说丢人到姥姥家了
第二点,strcpy_s 的设计很傻很天真。
        有些SB会认为微软不可能SB,那是外行的盲目迷信,微软SB的次数多着呐。强盛的公司并不会比那些弱小的公司犯傻次数少。
        strcpy_s原型为 errno_t strcpy_s( char *strDestination, size_t numberOfElements, const char *strSource );
        如果用户知道目的串空间不够,那就不应该使用strcpy,同样也不应该使用strcpy_s。无论用哪个,都和原串不相同了;
        如果用户知道目的串空间够了,那么就可以使用strcpy,为什么还要使用strcpy_s多加个参数?就像问“张三,你姓什么?”
2011-05-26 08:46
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:0 
回复 6楼 rjsp
楼上这位很有意思。
2011-05-26 09:20
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
6楼真的很搞笑。。。呵呵。。。

我们都在路上。。。。。
2011-05-26 13:52
快速回复:一个关于strcpy_s的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043184 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved