| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1303 人关注过本帖
标题:[求助]请帮忙指点
只看楼主 加入收藏
笑红尘
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-11-20
收藏
 问题点数:0 回复次数:7 
[求助]请帮忙指点

这是我第一次用c++写的程序

编译时说有12个错误,可把我给打击坏了

请帮忙解决一下 大恩不言谢

#include <iostream.h> int & put(int n); int get (int n); int vals[10]; int error=-1; void main() { put(0)=10; put(1)=20; put(9)=30; cout<<get(0)<<endl; cout<<get(1)<<endl; cout<<get(9)<<endl; put(12)=1; } int& put(int n) { if(n>=10) { cout<<"range error in put() value!"<<endl; exit error;} return vals[n]; }

int get(int n) {if(n>=10) { cout<<"range error in get() value!"<<endl; exit error;} return vals[n]; }

下面是错误:

D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(2) : error C2059: syntax error : '&' D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(7) : warning C4013: 'put' undefined; assuming extern returning int D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(7) : error C2106: '=' : left operand must be l-value D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(8) : error C2106: '=' : left operand must be l-value D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(9) : error C2106: '=' : left operand must be l-value D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(10) : error C2065: 'cout' : undeclared identifier D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(10) : error C2297: '<<' : illegal, right operand has type 'char [3]' D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(11) : error C2065: 'endl' : undeclared identifier D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(11) : warning C4552: '<<' : operator has no effect; expected operator with side-effect D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(12) : warning C4552: '<<' : operator has no effect; expected operator with side-effect D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(13) : warning C4552: '<<' : operator has no effect; expected operator with side-effect D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(14) : error C2106: '=' : left operand must be l-value D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(16) : error C2059: syntax error : '&' D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(25) : error C2297: '<<' : illegal, right operand has type 'char [28]' D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(26) : error C2065: 'exit' : undeclared identifier D:\Program Files\Microsoft Visual Studio\Vc98\yinyong.c(26) : error C2146: syntax error : missing ';' before identifier 'error' Error executing cl.exe.

yinyong.obj - 12 error(s), 4 warning(s)

搜索更多相关主题的帖子: int get put cout endl 
2004-12-10 09:57
玩具兵
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-8-17
收藏
得分:0 

修改如下:

#include <iostream> //使用标准C++,去掉后面的.h using namespace std; //加上这句 int & put(int n); int get (int n); int vals[10]; //int error =-1; int main() //返回值改成int { put( 0 )=10; put( 1 )=20; put( 9 )=30; cout << get( 0 ) << endl; cout << get( 1 ) << endl; cout << get( 9 ) << endl; put( 12 )=1; getchar(); //暂停关闭运行窗口 return 0; } int& put(int n) { if(n>=10) { cout << "range error in put() value!" << endl; getchar(); //加暂停,否则什么也看不见 exit (1); } return vals[n]; }

int get(int n) { if(n>=10) { cout << "range error in get() value!" << endl; getchar(); //加暂停 exit (1); getchar(); } return vals[n]; }

[此贴子已经被作者于2004-12-10 14:57:08编辑过]

2004-12-10 14:55
polyrandom
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2004-12-10
收藏
得分:0 
这样写的话,要是我传进去的i是负的,不是一样会出错?

http://www./ http://www./
2004-12-10 16:41
笑红尘
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-11-20
收藏
得分:0 

多谢二位的指点

还请以后多多指教!!


2004-12-17 10:30
笑红尘
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-11-20
收藏
得分:0 

using namespace std; //加上这句

为什么要加上这句?


2004-12-17 10:47
玩具兵
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-8-17
收藏
得分:0 

using namespace std; //加上这句

为什么要加上这句?

不加这句就得用:

#include <iostream.h> //后面加.h

2004-12-17 14:15
笑红尘
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-11-20
收藏
得分:0 

可我就是用了

#include <iostream.h>

执行时出了一大堆错

用using namesapce std; 就没错

着是怎么回事?

是不是编译器不一样

我用的是VC++6,0

我每次用#include <iostream.h>都不行


2004-12-24 10:30
rountye
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2004-12-24
收藏
得分:0 

这样就可以了! #include <iostream.h> #include <stdlib.h> int & put(int n); int get (int n); int vals[10]; const int ERROR=-1; void main() { put(0)=10; put(1)=20; put(9)=30; cout<<get(0)<<endl; cout<<get(1)<<endl; cout<<get(9)<<endl; put(12)=1; } int& put(int n) { if(n>=10) { cout<<"range error in put() value!"<<endl; exit(ERROR);} return vals[n]; }

int get(int n) {if(n>=10) { cout<<"range error in get() value!"<<endl; exit(ERROR);} return vals[n]; }

[此贴子已经被作者于2004-12-29 13:38:35编辑过]


天自潇洒随己意,人又何故负今生!
2004-12-29 13:35
快速回复:[求助]请帮忙指点
数据加载中...
 
   



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

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