【发布时间】:2021-08-12 22:35:54
【问题描述】:
我在一个文件中写了一个数组,现在我试图从同一个文件中读取它。但是,当我打印它时,它会给出非常奇怪的数字。我想知道这些数字是从哪里来的(是地址吗?),我该如何解决。我想知道是否可以写一些东西,这样你就不必每次使用 is 时都编写相同的循环(我指的是带有 i 和 j 的那个)。
#include <iostream>
#include <iomanip>
#include <fstream>
#include <time.h>
int main () {
int n,m;
cout<<"Enter number of rows: "<<endl;
cin>>n;
cout<<"Enter number of columns: "<<endl;
cin>>m;
int** b = new int*[n];
for (int i = 0; i < n; ++i)
{ b[i] = new int[m]; }
srand(time(0));
int max=9, min=-9;
for( int i = 0; i<n; ++i) {
for( int j = 0; j<m; ++j) {
b[i][j] = (rand()%
(max-min+1))+min;}
}
cout << " Array :" << endl;
for (int i=0; i<n; i++) {
for (int j=0; j<m; j++) {
cout << setw(5) << b[i][j];
}
cout<< endl;
}
ofstream array ("Array_2D.txt", ios::out);
for(int i=0; i<n; i++){
for (int j=0; j<m; j++) {
array << b[i][j] ;
}
}
ifstream readarray ("Array_2D.txt" , ios :: in);
int** p = new int*[n];
for (int i = 0; i < n; ++i)
{ p[i] = new int[m]; }
for (int i=0; i<n; ++i)
for (int j=0; j<m; ++j)
readarray >> p[i][j];
cout << " Array C: " << endl;
for(int i=0; i<n; ++i ) { // Вывод матрицы на экран
for(int j=0; j<m; ++j)
cout << p[i][j] << " ";
cout << endl;
}
【问题讨论】:
-
提示:您正在将整数值写入文件
Array_2D.txt它们之间没有任何空格。