Zahlen aus Datei auslesen

tommy07

Mitglied
Hallo,
ich möchte ganz ganz viele Zahlen aus einer Datei auslesen, hab aber keine Ahnung wie es geht. Ich kann bereits Strings aus einer Datei auslesen, es geht mir jedoch daraum, mit den Zahlen weiter zu rechnen. In der Datei sind die Zahlen mit Leerstellen voneinander getrennt.

Der bisherige Code:

Code:
Code:
// reading a text file
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>

int main () {
  char buffer[256];
  ifstream examplefile ("example.txt");
  if (! examplefile.is_open())
  { cout << "Error opening file"; exit (1); }

  while (! examplefile.eof() )
  {
    examplefile.getline (buffer,100);
    cout << buffer << endl;
  }
  return 0;
}
Wenn ich jetzt aber buffer[1] aufrufe, ist dieses eine ganz andere lange Zahl.

Könnt ihr mir weiterhelfen?

tommy
 
moin


Du liesst halt immer ein bis ein Leerzeichen kommt und das was du bis dahin aingelesen hast wandelst duin eine Zahl um. UNd dann gehts weiter mit einlesen bis zum nächsten Leerzeichen.


mfg
umbrasaxum
 
Hm... ok. Prinzip ist klar, doch wie setze ich das jetzt programmtechnisch um?

Bin noch C++ Neuling...welche befehle benutz ich dafür (kurzer Programmtext wäre natürlich göttlich, bin 'n bisschen am verzweifeln und unter Zeitdruck!)

cu
Tommy07
 
Also Programm liest aus Text File... Wie kann ich jetzt aber mit ausgelesenen Zahlen weiterarbeiten?
Mein Programm:

Code:
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>

int main () {
  int a;
  char buffer[256];
  ifstream examplefile ("example.txt");
  if (! examplefile.is_open())
  { cout << "Error opening file"; exit (1); }

  while (! examplefile.eof() )
  {
    examplefile.getline (buffer,100);
    //cout << buffer << endl;
  }
  a = buffer[1];
  cout << a;
  return 0;
}

buffer[1] sollte ja auf a geschrieben werden. Ausgegeben wird dann 0 obwohl in der ersten Zeile des Textfiles 1 steht....
Was ist falsch
 
moin


Nun hast du alles mit einmal ausgelesen und musst den Buffer aufteilen.
Und dann die einzelnen Teile mit atoi in Zahlen umwandeln.


mfg
umbrasaxum
 
moin


Und ich sag es immer wieder erstmal die Grundlagen lernen, bevor man sich an komplexere Sachen ranmacht.

Code:
#include <stdio.h>

int main(void)
{
	char buffer[100];
	char temp[5];

	int zahlen[30];

	int z=0;

	strcpy(buffer, "13 4556 6788 45 6546 788 90 76");

	for(int i=0, l=0; i<100; i++)
	{
		if(buffer[i] == ' ' || buffer[i] == '\0')
		{
			zahlen[z++] = atoi(temp);

			l=0;
		}

		temp[l] = buffer[i];
		temp[++l] = '\0';
	}

	for(int x=0; x<z; x++)
        printf("%d ", zahlen[x]);

	return 0;
}


mfg
umbrasaxum
 
Zurück