c++读取txt文件中的数据存储到数组中

由于不知道txt文件中数据的多少,所以准备用动态数组来做,但是检测输出的结果总是内存地址,代码如下:

int m,n;
cout << "请输入已知的行数 m = ";
cin >> m;
cout << "请输入已知的列数 n = ";
cin >> n;
ifstream InFiles("F:\\IDXA.txt");
int *b=new int[m+n];
for(int i=0; i<m+n;i++)
{
InFiles >> *b;
b++;
}
InFiles.close();

for(int i=0; i<m+n; i++)
{
cout << *b+i;
}
本人初学c++,还望大神们指点啊~

int *b=new int[m+n];

new可以给数据类型分配一个新结点并返回一个指向新分配内存区的首地址
也就是说你的*b是指向地址的追问

那应该怎么改啊?数据存入的方式有没有问题?不知道是存到数组里了还是存到指针上了...

追答

int *b=new int[m+n];改成int *b=NULL; b=new int[m+n];试一下,最后再加一句delete(int);
感觉你的初学还是少用new,这个内存函数,搞不好,会内存泄漏的,先把函数的功能搞懂了,再去用……

追问

输出的还是内存值~

追答

你先看下这个,理解下ifstream

http://wenku.baidu.com/view/1870ab1452d380eb62946d24.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-09
元素个数 = n X m
b不能偏移,偏移后b指向数组尾部了追问

我输入的不是元素个数,其实那个不关键,关键是后面的应该怎么改才对?

追答

用一个临时指针指向b,然后偏移临时指针,在打印b
就可以了
望采纳

追问

能否详细说明一下?

相似回答