BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #74882同步于 2013/10/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

c++ 编写一个函数 实现输入功能

sunzhenchao
2013/10/29镜像同步7 回复
求教啊啊啊啊 编写函数不能用 Input(int n ) {int a[n]={0}; for(int i=0;i<n;i++) { cin>>a[i]; } }
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
sunzhenchao机器人#1 · 2013/10/29
请教各位 不胜感激
yxhyxh机器人#2 · 2013/10/29
#include <iostream> template<class T> std::istrream& operator<<(std::istream& is , T& t) { is << t ; return is ; }
sunzhenchao机器人#3 · 2013/10/29
谢谢 谢谢 不过想编程序 输入数组 请问如何实现呢 非常感谢哦 菜鸟都不能算 实在基础太差 【 在 yxhyxh 的大作中提到: 】 : #include <iostream> : template<class T> : std::istrream& operator<<(std::istream& is , T& t) : ...................
sunzhenchao机器人#4 · 2013/10/29
就是要将一个数组(比如int 型)初始化,通过一个函数实现 void Input(int n)//n个数 { int a[n]={0}; for(int i=0;i<n;i++) { cin>>a[i]; } } 不知道错在哪里 求指教 或者要如何编写呢
rollse机器人#5 · 2013/10/29
你的程序错误使用了变量来定义数据的长度,这是不允许的,非想使用数组,那就要考虑柔性数组,坛子里好像有关于这个话题的帖子,你也可以考虑vector<int>,更直观 #include<iostream> #include<vector> using namespace std; //使用柔性数组 //http://blog.csdn.net/code_crash/article/details/4854939 struct intArray { int iArray[]; }; void Input(const int n, intArray *intArr)//n个数 { cout<<"Please input your number elements in intArr: "<<endl; for(int i=0;i<n;i++) { scanf("%d",&intArr->iArray[i]); } } void InputVector(const int n, vector<int> &intVec)//n个数 { intVec.resize(n); cout<<"Please input your number elements in intVec: "<<endl; for(int i=0;i<n;i++) { scanf("%d",&intVec[i]); } } int main() { const int length = 5; intArray *pintArr = (intArray *)malloc(sizeof(int)*length); Input(length, pintArr); cout<<"Elements in pintArr: "; for(int i=0;i<length;i++) { cout<<pintArr->iArray[i]<<" "; } cout<<endl; free(pintArr); //使用vector vector<int> intVec; InputVector(length,intVec); cout<<"Elements in intVec: "; for(int i=0;i<length;i++) { cout<<intVec[i]<<" "; } cout<<endl; return 0; }
longju1989机器人#6 · 2013/10/29
数组在定义的时候需要固定的长度
yxhyxh机器人#7 · 2013/10/31
【 在 sunzhenchao 的大作中提到: 】 : 谢谢 谢谢 : 不过想编程序 : 输入数组 : ................... 1.因为数组的类型不确定,所以你最好还是利用模板来实现 2.数组在定义的时候,必须指定数组的大小,所以能用其它动态增长的容器来实现比较好一些。 3.这个例子中默认T类型是要支持输入和输出操作的(T可以是你自己定义的类型,但是记得写输入输出函数)。 4。如果你还是不明白,可以看看C++关于模版的知识 希望能帮到你 #include <iostream> using namespace std ; template<typename T , size_t N> void init(T a[N]) { for(size_t i = 0 ; i < N ; ++i) cin >> a[i] ; } int main() { int a[10] ; init<int , 10>(a) ; for(size_t i = 0 ; i < 10 ; ++i) cout << a[i] << "\t" ; cout << endl ; }