Ich habe eine Datei mit X- und Y-Koordinaten und versuche, die X-Koordinaten in ein einzelnes 1D-Array und die Y-Koordinaten in ein anderes 1D-Array einzugeben.Geben Sie Koordinaten in zwei separate Arrays von Dateifehler ein
Die Datendatei ist in folgendem Format
(x coordinate)(y coordinate)
(x coordinate)(y coordinate)
(x coordinate)(y coordinate) (x coordinate)(y coordinate)
(x coordinate)(y coordinate) (x coordinate)(y coordinate)
Die Datei sieht wie folgt aus. Dies ist nur ein kleiner Teil der Datei, da uns nie mehr als 5.000 Punkte gegeben werden.
5.675207 -0.571210
0.728926 0.666069
2.290909 0.751731 2.004545 0.907396
0.702893 0.646427 5.909504 -0.365045
2.082645 0.871841 5.597107 -0.633507
6.117769 -0.164663 6.091736 -0.190282
5.571074 -0.653433 4.503719 -0.978307
3.983058 -0.745620
3.670661 -0.504729
5.857438 -0.413001
Bisher habe ich den folgenden Code bereits beendet:
#define _CRT_NONSTDC_NO_DEPRECATE
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char * argv[])
{
int count = 0;
ifstream fin;
ofstream fout;
double points[5000];
double x_coordinate[5000] = { 0 };
double y_coordinate[5000] = { 0 };
if (argc < 3)
{
cout << "Incorrect usage: prog.exe filenname number" << endl;
cout << "Exiting now, please try again." << endl;
return -1;
}
fin.open(argv[1]);
if (!fin)
{
cout << "Error opening file \"" << argv[1] << "\", exiting." << endl;
return -1;
}
fout.open(argv[2]);
while (fin >> points[count])
{
if (count % 2 == 0)
{
fin >> x_coordinate[count];
}
else
{
fin >> y_coordinate[count];
}
count++;
}
fin.close();
fout.close();
return 0;
}
ich den Inhalt meiner Array ausgegeben, nur um sicher zu stellen, dass sie richtig eingegeben wurden und für die x_coordinate Array, erhielt ich die folgende Ausgang:
-0.57121 0 0.751731 0 0.646427 0 0.871841 0 -0.164663 0 -0.653433 0 -0.74562 0 -0.413001 0 0.990358 0 -0.892387 0 -0.77929 0 0.835618 0 -0.999672 0 0.129798 0 -0.340688 0 -0.728578 0 -0.388408 0 0.420644 0 0.999065 0 0.556654 0 -0.435838 0 -0.779798 0 -0.710501 0 0.995461 0 -0.138933 0 0.875928 0 -0.972772 0 -0.527719 0 0.956751 0 0.372859 0 -0.987763 0 0.845169 0 -0.613152 0 0.703984
Und für die y_coordinate Array ich folgende Ausgabe:
0 0.666069 0 0.907396 0 -0.365045 0 -0.633507 0 -0.190282 0 -0.978307 0 -0.504729 0 0.858796 0 -0.994541 0 -0.459839 0 0.849633 0 -0.996983 0 -0.99692 0 0.599134 0 0.93742 0 -0.983368 0 -0.63288 0 0.976531 0 0.34858 0 0.103944 0 -0.240329 0 0.961729 0 -0.914335 0 0.768643 0 -0.112302 0 -0.672316 0 0.954271 0 -0.89202 0 0.181224 0 0.785033 0 0.356447 0 0.467288 0 0.474704 0 -0.728022
Ist etwas falsch in meinen Fin-Statements? Was kann ich tun, um es zu beheben und jede andere 0 in den Arrays loszuwerden. Ich bin ein Anfänger Programmierer und es dauert eine lange Zeit, um herauszufinden, was ich falsch mache. Jede Hilfe wäre willkommen. Vielen Dank!
Wenn Ihre Datei aus x- und y-Koordinaten besteht, warum lesen Sie in 'points [count]'? –
Wir werden alle Punkte in einem Array für einen späteren Teil des Programms benötigen. Meine einzige Sorge im Moment ist das Sortieren der x- und y-Koordinaten in ihre eigenen separaten Arrays. –
Aber wenn Sie etwas in 'Punkte' lesen, dann können Sie es auch nicht in' x_koordinate' oder 'y_koordinate' lesen. Sie könnten * es von 'Punkten' in beide kopieren, aber Sie können es nicht erneut lesen. –