Textdatei in zweidimensionales Array einlesen
-
Ich mache das Programm schon in C++
Die Textdatei hat immer 30 zeilen und 30 spalten und nur 1 und 0.
Im Anschluss soll im Feld nach bestimmen Zeichen gesucht werden.Kannst du mir bitte einen Tipp geben wie ich nun z.B. die eingelesenen Zeilen in ein Array schreiben kann? Oder muss ich komplett anders beginnen?
-
@Liptons17 sagte in Textdatei in zweidimensionales Array einlesen:
Im Anschluss soll im Feld nach bestimmen Zeichen gesucht werden.
es sind doch nur 0 und 1. Oder meinst du Muster?
Was soll in dem Array stehen?
Zahlenwerte 0 und 1 oder Zeichen '0' und '1'
-
Sorry, ich meinte natürlich Muster, und es handelt sich um Zahlenwerte.
-
@Liptons17 sagte in Textdatei in zweidimensionales Array einlesen:
std::string und std::Vector habe ich noch nicht verwendet und weis auch nicht wie ich es anwenden kann.
Und was ist in Zeile 21?
-
@Liptons17 sagte in Textdatei in zweidimensionales Array einlesen:
Sorry, ich meinte natürlich Muster, und es handelt sich um Zahlenwerte.
Dann solltest du das Array als
unsingend char
oderint
definieren.Dann kannst du die Werte mit zwei verscachtelten Schleifen einlesen.
-
An welcher Stelle würdest du sie einbauen? ich habe bereits in der while Schleife eine for Schleife eingebaut und von zeile 0 bis zeile 30 die eingelesenen zeilen geschrieben. Allerdings kam das falsche heraus bzw. konnte nicht compiliert werden.
-
@Liptons17 leider schreibst du nicht, wie du es versucht hast (den Code) und was raus kam.
-
Ich habe es mal so probiert, allerdings weis ich nicht wie genau ich die eingelesene Zeile in das Feld bringe.
Außerdem ist mir die verschachtelte Schleife unklar, da ich doch eigentlich nur bei jedem einlesen eine Zeile im Array nach unten rutsche?#include <iostream> #include <conio.h> #include <fstream> #include <stdlib.h> #include <string> using namespace std; //Hauptprogramm int main () { //Abfrage Dateiname char Dateiname [20]; cout << "Bitte geben Sie den Namen der gewuenschten Datei ein:" << endl; cin >> Dateiname; //Einlesen der Textdatei int feld [30][30]; int i,k=0; //i Spalte, k Zeile ifstream einlesen; einlesen.open(Dateiname, ios::in); string zeile; while (!einlesen.eof()) { getline(einlesen, zeile); for (i=0; i<30; i++){ // Schleife zum Einlesen ins Feld zeile >> feld [i][k]; // Wie wird eingelesen? } k++ cout << zeile << endl; // Test ob alles eingelesen }; cout << feld[3][3] << endl; // Testen ob Feld richtig gefüllt, muss hier 0 sein system("pause"); return 0; }
-
@Liptons17 sagte in Textdatei in zweidimensionales Array einlesen:
Ich muss eine Textdatei, bestehend aus 1 und 0 (getrennt durch Leerzeichen) in ein zweidimensionales Array einlesen um es später im Programm zu verwenden
Hat die Datei immer eine feste Anzahl an Zeilen und hat eine Zeile immer eine feste Anzahl an Nullen/Einsen?
Schreib doch erstmal ein Unterprogramm, das eine Zeile in ein Array einliest.
-
@Liptons17 lass das getline weg und lies direkt mit cin in das Array.
Wenn das immer 30x30 ist kannst zwei for-Schleifen nehmen.
-
Ich kann verstehen, dass du/ihr die Lösung nicht schreiben wollt, aber ich stehe einfach total auf dem Schlauch. Müssen die for schleifen dann in oder hinter die while schleife? Du meinst schon zwei verschachtelte for schleifen oder?
-
@Liptons17 sagte in Textdatei in zweidimensionales Array einlesen:
Ich kann verstehen, dass du/ihr die Lösung nicht schreiben wollt, aber ich stehe einfach total auf dem Schlauch.
Das hat verschiedene Gründe. Hauptgrund ist wohl, dass niemand die exakte Spezifikation der Datei kennt, die du einlesen willst,
-
Daran soll es natürlich nicht scheitern.
- Einlesen einer .txt Datei
- Inhalt z.B.:
1 1 0 1... (30 Spalten, getrennt durch Leerzeichen)
1
0
0
.
.
.
(30 Zeilen)
Der Inhalt beginnt am Anfang der Zeile 1.
Der Inhalt soll in ein 2d Array.
-
@Liptons17 sagte in Textdatei in zweidimensionales Array einlesen:
Daran soll es natürlich nicht scheitern.
- Einlesen einer .txt Datei
- Inhalt z.B.:
1 1 0 1... (30 Spalten, getrennt durch Leerzeichen)
1
0
0
.
.
.
(30 Zeilen)
Der Inhalt beginnt am Anfang der Zeile 1.
Der Inhalt soll in ein 2d Array.
Danke!
Deine erste Aufgabe ist IMHO das Zeilenweise einlesen einer Datei. Siehe hier z.B: https://www.daniweb.com/programming/software-development/code/216411/reading-a-file-line-by-line
Als Nächstes könntest du dir die Funktion 'strtok' anschauen.Nur Geduld, Bro. Das wird schon.
-
@Liptons17 sagte in Textdatei in zweidimensionales Array einlesen:
Müssen die for schleifen dann in oder hinter die while schleife?
Stattdessen.
Du meinst schon zwei verschachtelte for schleifen oder?
Ja.
Hatte ich geschrieben.
-
@Liptons17 sagte in Textdatei in zweidimensionales Array einlesen:
Die Textdatei hat immer 30 zeilen und 30 spalten und nur 1 und 0.
#include <cstddef> #include <cstdlib> #include <fstream> int main() { std::ifstream input{ "input.txt" }; int values[30][30]; for (std::size_t y{}; y < 30 && input; ++y) { for (std::size_t x{}; x < 30 && input; ++x) { if (!(input >> values[y][x])) { std::cerr << "Format error :(\n\n"; return EXIT_FAILURE; } } } }
@RBS2 sagte in Textdatei in zweidimensionales Array einlesen:
Das Fischlein kennt nur C++.
Nein Süßer. Aber passt schon.
@RBS2 sagte in Textdatei in zweidimensionales Array einlesen:
Deine erste Aufgabe ist IMHO das Zeilenweise einlesen einer Datei. [...] Als Nächstes könntest du dir die Funktion 'strtok' anschauen.
lach
-
Dieser Beitrag wurde gelöscht!
-
Dieser Beitrag wurde gelöscht!
-
Dieser Beitrag wurde gelöscht!
-
Dieser Beitrag wurde gelöscht!