C++複数行をスペースで区切った数を入力して配列にし、2 D配列を動的に申請する

2485 ワード

#include 
#include 
#include 
using namespace std;


//            
void input_n_m(int a[])
{
	char c;
	int i = 0;
	while ((c = getchar()) != '
') { if (c != ' ') { ungetc(c, stdin); cin >> a[i++]; } } //++++ asscii ....... } // void input_num(vector circuit_column, vector& circuit_num) { vector tem; tem = circuit_column; char c; int i = 0; while ((c = getchar()) != '
') { if (c != ' ')// { ungetc(c, stdin); cin >> tem[i++]; } } //++++ asscii ....... // circuit_num.insert(circuit_num.end(), tem.begin(), tem.end()); tem.clear(); } int main() { int n = 0; // int m = 0; // int a[2] = { 0 }; //1 cout << " 0 1000" << endl; input_n_m(a); n = a[0]; m = a[1]; // ? for (auto i : a) { cout << i << endl; } //2, vector circuit_column(m); vector circuit_num; for (size_t i = 0; i < n; i++) { cout << " " << m << " " << endl; input_num(circuit_column, circuit_num); } for (auto i : circuit_num) { cout << i << endl; } //3 int **B; B = new int*[n]; for (int i = 0; i < n; i++) B[i] = new int[m]; int k = 0; for (size_t i = 0; i < n; i++) { for (size_t j = 0; j < m; j++) { B[i][j] = circuit_num[k]; k++; } } cout << "--------------------B-------------------" << endl; for (size_t i = 0; i < n; i++) { for (size_t j = 0; j < m; j++) { cout << B[i][j] << " "; } cout << endl; } int **A; A = new int*[n]; for (int i = 0; i < n; i++) A[i] = new int[m]; for (size_t i = 0; i < n; i++) { for (size_t j = 0; j < m; j++) { if (B[i][j] == 1) { A[i][j] = 1; } else A[i][j] = 0; } } cout << "--------------------A-------------------" << endl; for (size_t i = 0; i < n; i++) { for (size_t j = 0; j < m; j++) { cout << A[i][j] << " "; } cout << endl; } // for (int i = 0; i < n; i++) { delete[] A[i]; delete[] B[i]; } delete[] A; delete[] B; system("pause"); return 0; }