C++定义多个文件对象数组,然后给文件对象数组中每一个元素赋值

比如:
ifstream infile[1000];
for(int i = 0 ; i < 1000 ; i++)
{
ifstream file;

infile[i] = file;
}

这种方式为什么使用报错

第1个回答  2015-02-05
#include <iostream>
#include <fstream>
using namespace std;

int main(){
ifstream infile[1000];
for(int i = 0 ; i < 1000 ; i++)
{
ifstream file;
infile[i] = file;
}

return 0;
}

执行结果:

我这并未出错,你在看看!

第2个回答  2015-02-05
直接原因: fstream流以及它的基类的公开接口,没有重载=运算符,所以没有办法使用赋值运算。
非直接原因: fstream流绑定一个文件然后进行操作,赋值没有意义。 一个文件对应多个流,同步问题,安全问题,内存泄露等都是有可能发生的。 这样做毫无意义。本回答被网友采纳

c++多个类如何共享一个变量结构体数组,允许一个类的对象修改数组...
struct str{ int n; int s;};void main(){struct str a[2]={1,2,3,4};\/\/声明一个结构数组并对数组a[0]中的成员n和s 分别赋值为1和2,对a[1]中的成员设置为3和4。 注:有些编译器可能不需要最前面的struct来声明 结构对象。 struct str *p=a; \/\/声明一个结...

C++用字符数组给string 数组中某一个string赋值问题
P1[0](ch1): 在没有适当 operator() 的情况下调用类类型的对象或将函数转换到指向函数的类型。P1[0]=ch1;运行正常,没有问题。

C++中对结构体中的字符数组赋值的问题
首先,你这个不是初始化的问题,a.version[2]={0x00,0x01}是数组越界的问题,version的下标只能取0和1。另外关于初始化的问题,数组也不能这样初始化啊,数组在定义的时候可以初始化,如果不在定义的时候初始化,后面就只能挨个初始化。比如int a[2] = {1,2};可以 但是int b[2];b[]={1,2...

c++怎么给字符数组对象赋值(从键盘接受)
='\\0') \/\/未到串尾 rever(p+1); if(*p=='\\0')return ;printf("%c",*p);}int main(){char arr[MAX];gets(arr); \/\/利用gets()函数接收输入整行字串,以回车结束输入.rever(arr);\/\/反转输出printf("\\n");\/\/结尾换行return 0;} 第一行是输入.第二行字符是反序输出结果.gets从...

C++里面,含有数组的类对象是怎么赋值的?
C++类的对象数组赋值问题 如下:void main(){ CStudent Cs[4]={ CStudent(1,"张三",80), CStudent(2,"李四",75), CStudent(3,"王五",95), CStudent(4,"小六",62) }; \/\/这样就可以赋初值.也可以使用成员函数一个个设置.如下:\/* Cs[0].SetID(1); Cs[0].SetName("...

c++中整型数组长度指定了,任何一个元素有没有赋值,那么所有的初值都默...
这个和编译器还有机器有关,有的会自动赋值为0,有的为空,有的随机。使用前一定要自己给赋值,不然就算在自己机器上成功了,拿到别人机器上还是可能会出错

c++ 取文件夹中所有文件名 赋值给变量
int main(){ LPFILE_NAME lpFileName = new FILE_NAME[1024];\/\/假设有1024 个文件 memset(lpFileName, 0, 1024*sizeof(FILE_NAME));int iCount = 0;\/\/ _finddata_t file;long lf;int count = 0;\/\/输入文件夹路径 if((lf = _findfirst("D:\\\\360\\\\*.dll", &file))==-1)cou...

c++如何建立对象数组
c++建立对象数组主要通过数组初始化来实现,其语法结构是数组名 = {对象1, 对象2, 对象3...};在您给出的实例中,定义了一个名为"employee"的对象数组e,其大小为6。数组的每个元素都是"employee"类的实例。数组的初始化使用了花括号{}。数组中的第一个元素被初始化为默认构造函数生成的对象,即...

c++ 数组怎么一次批量赋值
public:voidipt(char*t,intpt[]){pname=t;for(inti=0;i<5;i++)property[i]=pt[i];} } 方法如下:structAc{ char*pname;intproperty[5];}inita[2]={{"a",1,2,3,4,5},{"b",2,3,4,5,6}};这样就可以调用ipt了:Aa;for(inti=0;i<2;i++)a.ipt(inita[i].pname,inita...

C++用函数给有字符串数组char*[]和一个DWORD数组赋值,结果char*[]里的...
如果不要原来的内容,直接scanf("%s",a); 如果想把后面的输入放到原来内容后面,即接到abc后面,那么还要个中间数组b[]暂时存放输入的内容,先把新的输入放到数组b[]里面:scnaf("%s",b);然后再接到a[]原来内容的后面:strcat(a,b);不要忘了#include <string.h> ...

相似回答