返回信息流求教啊啊啊啊
编写函数不能用
Input(int n )
{int a[n]={0};
for(int i=0;i<n;i++)
{
cin>>a[i];
}
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #74882同步于 2013/10/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
c++ 编写一个函数 实现输入功能
sunzhenchao
2013/10/29镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
#include <iostream>
template<class T>
std::istrream& operator<<(std::istream& is , T& t)
{
is << t ;
return is ;
}
谢谢 谢谢
不过想编程序
输入数组
请问如何实现呢 非常感谢哦 菜鸟都不能算 实在基础太差
【 在 yxhyxh 的大作中提到: 】
: #include <iostream>
: template<class T>
: std::istrream& operator<<(std::istream& is , T& t)
: ...................
就是要将一个数组(比如int 型)初始化,通过一个函数实现
void Input(int n)//n个数
{
int a[n]={0};
for(int i=0;i<n;i++)
{
cin>>a[i];
}
}
不知道错在哪里 求指教
或者要如何编写呢
你的程序错误使用了变量来定义数据的长度,这是不允许的,非想使用数组,那就要考虑柔性数组,坛子里好像有关于这个话题的帖子,你也可以考虑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;
}
【 在 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 ;
}