[C]Arrays von Strukturen terminieren!

Bexx

Verrückte Erfinderin bei Daniel Düsentrieb
Hallo, ich mal wieder...

bin erneut auf ein Problem gestoßen, habe ein Programm geschrieben, das Spendernamen usw. speichert, aber das ganze funktioniert nicht so richtig, ich denke, dass das Problem daran liegt, dass die Strings nicht terminiert sind...

Hier mal der Code:
Code:
// Arrays von Strukturen (Eingabe).cpp : main project file.

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <io.h>

#define MAX 10

struct eingabe
{
	char vname[20];
	char nname[20];
	float betrag;
	char telefon[20];
};

int i;
int wahl = 0, nbr = 0;
float gesamt = 0.;

int main(void)
{
	struct eingabe liste[MAX];

	for (i = 0; i < MAX; i++)
	{	
		printf("Bitte Vornamen eingeben: ");
		scanf("%s",liste[i].vname);
		printf("Bitte Nachnamen eingeben: ");
		scanf("%s",liste[i].nname);
		printf("Geben Sie die Hoehe der Sende ein: ");
		scanf("%f", &liste[i].betrag);
		printf("Bitte Telefonnummer im Format 123-456 eingeben: ");
		scanf("%s",liste[i].telefon);
		printf("Weiter? (1 = JA, 2 = NEIN)\n");
		scanf("%d", &wahl);
		if (wahl == 2)
		{
			printf("Sie haben abbrechen gewaehlt!");
			break;
		}
	gesamt += liste[i].betrag;
	nbr++;
	}
	wahl = 0;
	printf("\n\n");
	printf("Waehlen Sie bitte aus: 1- Eintraege anzeigen\n");
	printf("                       2- Durchschnittliche Spendenhoehe pro Person\n");
	printf("                       3- Spenden gesamt\n");
	scanf("%d", &wahl);
	switch (wahl)
	{
	case 1:
	for (i = 0; i < MAX; i++)
	{
		printf("Name : %s %s %f", liste[i].vname, liste[i].nname, liste[i].betrag);
		printf("\t\tTelefon: %s", liste[i].telefon);
	}
	break;
	case 2:
		printf("Durchschnittliche Spende p.P.: %f ", gesamt / nbr);
		break;
	
	case 3:
		printf("Es wurden insgesamt %f Euro Spenden eingenommen!", gesamt);
	getch();
    return 0;
	}
}

Wie kann ich die Strings in diesem Fall terminieren?

Danke schonmal im Voraus...
 
Hi.

Was meinst du denn mit "es funktioniert nicht richtig"? Wenn du ein Problem hast und irgendetwas nicht so funktioniert wie du willst, dann solltest du dein Problem auch beschreiben und sagen was denn nicht funktioniert. Woher sollen wir denn wissen was du willst?

In dem Fall vermute ich mal, das du dir noch merken solltest wie voll dein Array ist, und dementsprechend nur soviele Elemente ausgibst wie auch im Array schon gefüllt sind.

Gruß
 
Zurück