Zugriff auf struct elemente

Schnelle objektorientierte, kompilierende Programmiersprache.
AxelFoley1991
Beiträge: 20
Registriert: Do Dez 09, 2010 6:34 pm

Re: Zugriff auf struct elemente

Beitrag von AxelFoley1991 » Do Dez 16, 2010 5:47 pm

danke, jetzt hab ich es

AxelFoley1991
Beiträge: 20
Registriert: Do Dez 09, 2010 6:34 pm

Re: Zugriff auf struct elemente

Beitrag von AxelFoley1991 » Do Dez 16, 2010 6:16 pm

und wieder mal ein problem, bei dem es nicht weitergeht, ich will in mein programm jetzt noch das löschen einbauen, doch wie schreibt man das, das dieses structelement was man nicht mehr haben will, gelöscht wird und der speicherplatz dann wieder beschrieben werden kann( also ich hab c[100] tonträger voll, will jetzt c[56] löschen, udn dann so machen das man den wieder beschreiben kann)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Zugriff auf struct elemente

Beitrag von Xin » Do Dez 16, 2010 6:22 pm

AxelFoley1991 hat geschrieben:und wieder mal ein problem, bei dem es nicht weitergeht, ich will in mein programm jetzt noch das löschen einbauen, doch wie schreibt man das, das dieses structelement was man nicht mehr haben will, gelöscht wird und der speicherplatz dann wieder beschrieben werden kann( also ich hab c[100] tonträger voll, will jetzt c[56] löschen, udn dann so machen das man den wieder beschreiben kann)
Schreib drüber.

Du kannst aus einem Array nichts "löschen". Du kannst was reinschreiben. Du kannst überschreiben. Du kannst Dir eine Variable nehmen, die Dir sagt, ob Dich das, was da drin steht interessiert oder nicht. Aber löschen geht nicht.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

AxelFoley1991
Beiträge: 20
Registriert: Do Dez 09, 2010 6:34 pm

Re: Zugriff auf struct elemente

Beitrag von AxelFoley1991 » Do Dez 16, 2010 6:25 pm

also müsste man jedes structelement mit einem leerzeichen überschreiben, und das so schreiben das man bei der eingabe eines neúen elementes sich das programm ein struct aussuchen was "leer" ist?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Zugriff auf struct elemente

Beitrag von Xin » Do Dez 16, 2010 6:30 pm

AxelFoley1991 hat geschrieben:also müsste man jedes structelement mit einem leerzeichen überschreiben, und das so schreiben das man bei der eingabe eines neúen elementes sich das programm ein struct aussuchen was "leer" ist?
Ein Integer hat den Wert, den es nunmal hat.

Ein Char-Array ist eigentlich ein Array von kleinen Integers, diese werden aber Häufig genutzt, um Texte (255 mögliche Zeichen je char) zu kodieren und zwar so lange, bis ein Null-Byte kommt. Wenn Du einen Text speicherst, reicht es damit das erste char mit '\0' (einem Nullbyte) zu überschreiben. Damit endet der Text, ohne dass er auch nur ein Zeichen lang wäre. Der Rest wird ignoriert.

Leerzeichen sind Teil eines Textes, ein gültiger Text kann also durchaus nur aus Leerzeichen bestehen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

AxelFoley1991
Beiträge: 20
Registriert: Do Dez 09, 2010 6:34 pm

Re: Zugriff auf struct elemente

Beitrag von AxelFoley1991 » Do Dez 16, 2010 6:48 pm

Also ich hab das jetzt so geschrieben:

Code: Alles auswählen

printf("Welcher Künstler? "); scanf("%s",&k);
printf("%s\n",k)
for(l=0;l<=x;l++)
{
	if (strcmp(c[l].Kuenstler,k)==0)
	{
		ausgabe2();						
		ausgabe(c[l]);
		printf("\nWirklich löschen? ==> 1\n");
		scanf("%1s",&auswahlend);
		if (auswahlend=='1')
		{
		         strcpy(c[l].Kuenstler,"\0");strcpy(c[l].Album,"\0");c[l].Erscheinungsjahr="\0";c[l].Kaufdatum="\0";
	c[l].Anzahl_der_Medien="\0";strcpy(c[l].Format,"\0");
		}
	}
}
für album, künstler und format sind die felder jetzt leer , bei den anderen stehen sinnlose zahlen drin, das sieht ja aber keiner, solange ich das hinkriege das das programm bei der asugabe aller tonträger die weglässt wo der künstler leer ist, doch wo ist dann dort der fehler:

Code: Alles auswählen

if (a=='4')
		{			
			ausgabe2();			
			for(i=0;i<=x;i++)
			{							
				if (strcmp(c[i].Kuenstler,'_')!=0)
				{			
					ausgabe(c[i]);
					printf("\n");
				}
			}
		}

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: Zugriff auf struct elemente

Beitrag von +Fuss+ » Do Dez 16, 2010 6:49 pm

Hi
vllt. wäre es sinnvoller Listen für dein Programm zu verwenden, dann könntest du einzelne Einträge löschen bzw. hinzufügen.

Hab gerade keinen link zur Hand, gibt aber ne Seite dazu im Wiki.

MfG Fuss @ Nokia N8 :D

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Zugriff auf struct elemente

Beitrag von Xin » Do Dez 16, 2010 9:34 pm

+Fuss+ hat geschrieben:vllt. wäre es sinnvoller Listen für dein Programm zu verwenden, dann könntest du einzelne Einträge löschen bzw. hinzufügen.

Hab gerade keinen link zur Hand, gibt aber ne Seite dazu im Wiki.

MfG Fuss @ Nokia N8 :D
Na, dann gn8 xD

Listen
Xin@iPhone@Couch
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten