Я пытаюсь написать функцию, которая будет записывать массив (2D) в файл. Это код ниже:C++ Проблемы с функцией write array
#ifndef WRITE_FUNCTIONS_H_
#define WRITE_FUNCTIONS_H_
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void write_array(string name, int rows, int columns, double **array){
ofstream output;
output.open(name, ios::out);
for(int r = 0; r < rows; r++){
for(int c = 0; c < columns; c++){
output<<array[r][c]<<",";
}
output<<endl;
}
output.close();
}
#endif
Когда я пытаюсь запустить его в этой программе:
#include <string>
#include <iostream>
#include "write_functions.h"
using namespace std;
int main(){
double **array = new double*[10];
for(int i = 0; i < 10; i++){
array[i] = new double[10];
}
for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++){
array[i][j] = i + j;
}
}
string array_name="home/Plinth/Documents/Temp/array.txt";
write_array(array_name, 10, 10, array);
return(0);
}
Это отлично работает нормально, без ошибок и предупреждений, но нет ни одного файла создается. Я что-то написал неправильно? Неужели я ошибаюсь?
'outstream output; output.open (name, ios :: out); 'Почему люди не используют конструктор? 'outstream output (name);'? – erip
Вы должны проверить, что 'output.is_open() == true' – NathanOliver
Попробуйте' '/home/Plinth/Documents/Temp/array.txt' 'вместо' "home/Plinth/Documents/Temp/array.txt" ' , скорее всего, вы пытаетесь создать файл в директории, которая не существует. – Aleph