Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi @all,

Ich habe folgendes Problem bzw. weiß nicht wie ich das Programmtechnisch umsetzen kann.

Ich möchte eine for-Schleife schreiben, in der in jedem Schleifendurchgang nach erfolgter Rechnung die Ergebnisse in eine Datei geschrieben werden. Nun das Problem: Die Datei sollte in jedem Schleifendurchgang einen anderen Namen haben, so dass ich sie unterscheiden kann. Dies wollte ich gerne durch eine Variable steuern, so dass die Datei den Namen Variable.dat hätte. Die Variable wird dann um einen Wert erhöht, sodass die nächste Datei einen anderen Namen hat, nämlich Variable+x.dat. Die Variable ist eine Zahl.

Bsp.:

Erste Datei heisst: 12.dat

Zweite Datei heisst: 15.dat

Dritte Datei heisst: 18.dat

usw.

usw.

Kann man sowas mit C programmieren?

Eine andere Frage wäre noch:

Kann man dem Programm irgendwie sagen, dass er die neuen Zahlen nicht unter die vorherigen Zahlen schreibt, sondern jeweils mit einem Tab getrennt hinter die Zahl.

Ich meine folgendes:

i=0 (i ist die Laufvariable einer Schleife)

a

b

c

d

e

f

usw.

i=1

a 1

b 2

c 3

d 4

usw.

Vielen Dank schon mal im voraus.

Ich hoffe auf eine schnelle Antwort.

Gruß

checko

Ich möchte eine for-Schleife schreiben, in der in jedem Schleifendurchgang nach erfolgter Rechnung die Ergebnisse in eine Datei geschrieben werden. Nun das Problem: Die Datei sollte in jedem Schleifendurchgang einen anderen Namen haben, so dass ich sie unterscheiden kann. Dies wollte ich gerne durch eine Variable steuern, so dass die Datei den Namen Variable.dat hätte. Die Variable wird dann um einen Wert erhöht, sodass die nächste Datei einen anderen Namen hat, nämlich Variable+x.dat. Die Variable ist eine Zahl.

Kann man sowas mit C programmieren?

  • Datei auf
  • Text rein
  • Datei zu

Wo ist das Problem?

Kann man dem Programm irgendwie sagen, dass er die neuen Zahlen nicht unter die vorherigen Zahlen schreibt, sondern jeweils mit einem Tab getrennt hinter die Zahl.

\t ist der Tab. Du darfst halt nur keinen Zeilenumbruch machen.

Hi TDM,

Das Problem ist, dass die Datei in jedem Schleifendurchgang einen anderen Namen haben soll.

So dass die neuen werte in eine ANDERE Datei geschrieben werden soll.

Der Ablauf mal ganz konkret:

i=0 (i Laufvariable der for-Schleife)

Rechnung

Schreiben der Ergebnisse in eine Datei "x.dat".

i=1 (2. Durchgang)

Rechnung (mit etwas anderen Zahlen)

Schreiben der neuen Ergebnisse in eine andere Datei "y.dat".

i=2 (3. Durchgang)

Rechnung (")

Schreiben der neuen Ergebnisse in eine dritte Datei "z.dat".

Das mache ich aber jetzt nicht 3 mal, sondern vllt. 10 mal.

Verstehst du was ich meine?

Gruß

checko

Ja, das ist schon klar, aber du sollst ja nicht den Dateiname einfach ändern sondern eine neue Datei aufmachen...

void writeValue(int value, const char* data, int dataLength);

void write(const char* fileName, const char* data, int dataLength);


int main(int argc, char* argv[])

{

	int i;

	for(i = 0; i < 10; i++)

	{

		writeValue(i, "abc", 3);

	}

	return 0;

}


void writeValue(int value, const char* data, int dataLength)

{

	char buffer[100];

	sprintf(buffer, "%i.dat", value);

	write(buffer, data, dataLength);

}


void write(const char* fileName, const char* data, int dataLength)

{

	FILE* pFile;

	pFile = fopen(fileName, "w");

	if(pFile != NULL)

	{

		fwrite(data, sizeof(char), dataLength, pFile);

		fflush(pFile);

		fclose(pFile);

	}

}

:rolleyes:

Hi TDM,

Das sieht schon interessant aus.

Zum Verständnis würde ich gerne die Bedeutung von folgenden Keywords wissen.

1. sprintf

2. sizeof(char)

3. fflush

4. fwrite

Wäre nett, wenn du mir das noch erklären könntest.

Gruß

checko

Zum Verständnis würde ich gerne die Bedeutung von folgenden Keywords wissen.
Von denen ist nur sizeof ein Schlüsselwort, die anderen sind Funktionen der Standardbibliothek.

sprintf ist dasselbe wie printf, nur dass das Ergebnis nicht auf die Konsole, sondern in einen char-Puffer ausgegeben wird.

sizeof ist ein Operator, der zur Compilezeit die Größe eines Typs (oder des Typs eines Ausdrucks) ermittelt, und zwar relativ zur Größe von char. sizeof(char) ist definitionsgemäß 1.

fflush erzwingt das Schreiben von gepufferten Zeichen in einen Ausgabestream. Ist hier m.M.n. unnötig.

fwrite schreibt Daten in einen Ausgabestream.

Hi TDM,

Ich kann nur sagen: Vieeeeelen Dank für deine Hilfe. Ohne dich wäre ich aufgeschmissen gewesen.

Gruß checko

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.