You are not logged in.


WebSTAR

Stamm Clubber

  • "WebSTAR" started this thread

Posts: 97

Location: fff

Occupation: dadf

  • Send private message

1

Wednesday, April 2nd 2008, 5:31pm

variablen speichern

Hallo!

Ich bräuchte folgendes:

Ich will das ich das Programm ausführe und eine Zahl eingebe. Und wenn ich das Programm jetzt neu Starte, dann soll dieser Wert noch immer vorhanden sein.
Also irgentwie abspeichern.

Wie funktioniert das in c?

mfg
Ich bin wie Ich bin, anders gibt es mich nicht.

Posts: 484

Location: Rechenzentrum

Occupation: IT-lerin mit wenig Zeit

  • Send private message

2

Wednesday, April 2nd 2008, 6:02pm

Hallo,

das machst du am besten mit Dateien. Hier ist ein Beispiel, wie man Textdateien mit C schreibt: Klick.

Grüße

Kleiner Compiler
Die Utopie von heute ist die Realität von morgen. (Ernst Bloch)

WebSTAR

Stamm Clubber

  • "WebSTAR" started this thread

Posts: 97

Location: fff

Occupation: dadf

  • Send private message

3

Wednesday, April 2nd 2008, 6:38pm

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 /* fopen example */
   #include <stdio.h>
  
  int main ()
   {
    FILE * pFile;
    pFile = fopen ("myfile.txt","w");
     if (pFile!=NULL)
      {
       fputs ("fopen example",pFile);
       fclose (pFile);
      }
    return 0;
   }


so bei dem link hab ich ja das gefunden.
Und in der txt datei, wird jetzt ja "fopenexample" gespeichert. Wie geht das jetzt aber, das ich dort eine variable x speichere? wenn ich sie mit %d hineinschreibe gehts nicht.
Ich bin wie Ich bin, anders gibt es mich nicht.

Jockel

Ehrenmitglied mit Auszeichnung

Posts: 3,219

Location: 5<<0xE|5<<6|5>>2<<4

  • Send private message

4

Wednesday, April 2nd 2008, 6:41pm

Hallo!

fwrite oder fprintf.

mfg

Jockel
P = NP.

WebSTAR

Stamm Clubber

  • "WebSTAR" started this thread

Posts: 97

Location: fff

Occupation: dadf

  • Send private message

5

Wednesday, April 2nd 2008, 6:59pm

Aha...komisch...wenn ich das mache und den compile progress durchführe, dann hängt er bei ca. 40% und stockt nur mehr...komisch

darf ich dann diese datei die gespeichert wurde, #include <"variablex.txt"); so einfügen?
Ich bin wie Ich bin, anders gibt es mich nicht.

This post has been edited 1 times, last edit by "WebSTAR" (Apr 2nd 2008, 7:01pm)


Posts: 484

Location: Rechenzentrum

Occupation: IT-lerin mit wenig Zeit

  • Send private message

6

Wednesday, April 2nd 2008, 7:13pm

Quoted

#include <"variablex.txt");


Das geht so nicht. Nur C-Quellcodedateien (insbesondere die Header; die enden auf .h) werden über #include <einheader.h> zum Compilieren eingebunden. Wenn du die Datei wieder öffnen willst, dann mit fopen. Mit fread oder fscanf kann aus der Datei gelesen werden.

Grüße

Kleiner Compiler
Die Utopie von heute ist die Realität von morgen. (Ernst Bloch)

WebSTAR

Stamm Clubber

  • "WebSTAR" started this thread

Posts: 97

Location: fff

Occupation: dadf

  • Send private message

7

Wednesday, April 2nd 2008, 7:20pm

Ok!
Ich bin grad am verzeifeln.
Wie müsste jetzt ein Programm aussehen, damit ich dort eine Zahl eingebe, und diese dann in der Datei Datei.txt gespeichert wird. Und beim nächsten start wieder aufgerufen wird.?!?

Bin grad wirklich verwirrt.
Ich bin wie Ich bin, anders gibt es mich nicht.

Posts: 484

Location: Rechenzentrum

Occupation: IT-lerin mit wenig Zeit

  • Send private message

8

Wednesday, April 2nd 2008, 8:41pm

Hallo,

ich würde es in etwa so schreiben:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>

int main (){

	FILE *varfile;
	// Versuche Datei zum lesen zu oeffnen
	varfile = fopen( "variable.txt", "r" );
	int myVar;
	char yesNo;
	myVar = 0;
	
	// Gibt es die Datei schon oder nicht
	if ( varfile != NULL ) {
		// Abgespeicherte Zahl als Integer lesen
		fscanf( varfile, "%d", &myVar  );
		printf( "Die gespeicherte Zahl war: %d \n", myVar );
	} else {
		printf( "Datei existiert nicht. Verwende Standardwert 0 \n" );
	}
	
	printf( "Neue Zahl eingeben? J oder N \n" );
	yesNo = getchar();
	
	if( yesNo == 'J' ){
		scanf( "%d", &myVar );
		// Datei zum Schreiben oeffnen
		varfile = fopen( "variable.txt", "w" );
		fprintf( varfile, "%d", myVar );
		printf( "Die Variable hat jetzt den Wert : %d \n", myVar );
	}
	
	printf( "Auf Wiedersehen \n" );

}


Grüße

Kleiner Compiler
Die Utopie von heute ist die Realität von morgen. (Ernst Bloch)

WebSTAR

Stamm Clubber

  • "WebSTAR" started this thread

Posts: 97

Location: fff

Occupation: dadf

  • Send private message

9

Wednesday, April 2nd 2008, 8:48pm

Also danke erst mal!
Find das supa von dir

Aber bei diesen zwei zeilen

Source code

1
2
	int myVar;
	char yesNo;


zeigt er mir bei den variablen selber und bei int und char einen fehler an. ich kann aber keinen fehler enddecken.
Ich bin wie Ich bin, anders gibt es mich nicht.

Posts: 484

Location: Rechenzentrum

Occupation: IT-lerin mit wenig Zeit

  • Send private message

10

Wednesday, April 2nd 2008, 11:04pm

Also bei mir compiliert es der gcc ohne Murren. Könntest du die Fehlermeldung posten?

Grüße

Kleiner Compiler
Die Utopie von heute ist die Realität von morgen. (Ernst Bloch)

exnase

Active Clubbers

Posts: 696

Location: STD

Occupation: Nicht mehr Student

  • Send private message

11

Thursday, April 3rd 2008, 9:02am

Hi,
wir sind in C, d.h. eigentlich Variablendeklaration vor den Code.
Verschieb mal varfile = fopen( "variable.txt", "r" ); hinter char yesNo;.
Der gcc wird evtl. den C99 Standard anwenden mit dem das (wie in C++) möglich ist, allerdingd geht das nicht mit allen COmpilern.
Vermute das ist das Problem hier.

mfg exnase
Wer nichts weiß und weiß, dass er nichts weiß, weiß mehr als einer, der nichts weiß und nicht weiß, dass er nichts weiß!
Meine Software hat keine Fehler. Sie entwickelt nur manchmal zufällige Features!

Rate this thread