Я использовал файл .txt (который содержит буквы и цифры в каждой строке) в качестве входных данных.Я помещал эти строки в массив указателей строка за строкой, а затем удалял все буквы в цикле for и помещал все значения в двойной массив, который предназначался для последующего использования в основной программе.Это не работает, хотя.Значения доступны только внутри цикла, если я пытаюсь получить вывод вне цикла, используя cout << Values[0] << endl;
, в качестве вывода я ничего не получаю.
Массив "Значения" можно посмотреть, если яиспользуйте cout << Values[i] << endl;
внутри цикла for, но я не могу получить к нему доступ вообще за пределами цикла.Как я могу это изменить?Что я не могу получить доступ к значениям?Я попытался переместить значения в массиве указателей, потому что я думал, что это позволит мне получить доступ к этим значениям вне цикла, но это не работает.Я прочитал, что массивы и переменные, объявленные внутри цикла, не доступны вне цикла.Здесь, однако, я объявил двойной массив вне цикла, поэтому для меня нет смысла, что он недоступен вне цикла.
(я хорошо знаю, что этот код действительно неуклюжий ... ноэто [почти] работает)
Мне только что указали, что я должен загрузить сам код, а не его изображение.Итак, вот:
#include <iostream>
#include <fstream>
#include <algorithm>
#include <stdlib.h>
using namespace std;
int main()
{
fstream Projekt; //Einlesen der Daten aus Quelldatei
Projekt.open("Projekt_1.txt",ios::in); //
char *val[100]; //Definition eines Pointer-Arrays
val[0] = new char[100]; //
int i = 0; //
while(Projekt.getline(val[i],100)) //Befüllen des Pointer-Arrays mit den
{ //einzelnen Zeilen der Quelldatei
i++; //
val[i] = new char[100]; //
} //
string Val; //
double Values[100]; //Zahlen werden als Double in diese Array gespeichert
int Anz;
int Steps;
double Interv;
double g;
double x[100];
double y[100];
double vx[100];
double vy[100];
char a [53] = {' ','a', 'b', 'c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
for (i = 0; i < 100; i++) { // ^ Array a[53] zum löschen der Buchstaben aus der Quelldatei (looks stupid but if it works it aint stupid)
Val.assign(val[i]); //Werte aus dem Poiter-Array werden in das Val Array übertragen
for (unsigned int j = 0; j <= 52; j++){ //for-Schleife zum entfernen aller Buchstaben
Val.erase(remove(Val.begin(),Val.end(),a[j]), Val.end());
} //
const char* Help = Val.c_str(); //"char" Val wird zu const char* Help
Values[i] = atof(Help); //übertragung von cont char* Help zu Double in "Values"-Array
Val.clear();
cout << Values[i] << endl;
}