Der folgende Code fragt nach Eingabe und soll danach drucken.
Ich habe jedoch mehrere Probleme festgestellt.
Daten speichern und Daten lesen (C-Programmierung)
Probleme
- Programm nicht mehr funktioniert, nachdem ich die Eingabe zu bestätigen.
- wenn es die Eingabe drucken soll, druckt es stattdessen seltsame Symbole aus.
Fragen:
Wie drucke ich den ganzen Wert der Variablen?
Für ex: - Wenn ich Eingang "John Lemon" denn wenn es fragt nach "Name:".
Ich wäre in der Lage zu drucken "John Lemon" anstelle von "John".Nach dem Drucken des ersten Wertes der Variablen, wie kann ich weiterhin den zweiten Wert und den dritten Wert der Variablen vollständig drucken?
Für ex:
Beispielausgabe
Name: John Lemon
Alter: 21
Adresse: 41, 2/2 Apple-Straße
Was kann ich tun um dieses Problem zu beheben?
Wenn möglich, bitte erklären Sie in Laien, wie ich neu in der C-Programmierung bin.
Sorry, wenn das unordentlich aussieht. Ich habe mein Bestes versucht, um es so einfach wie möglich zu halten.
#include<stdio.h>
char fname[]={"guest.dat"};
struct text
{
char name;
int age;
char address;
};
void printing()
{
struct text t1;
FILE *fp;
fp=fopen(fname,"r");
printf("\nName: %c",t1.name);
printf("\nAge: %d",t1.age);
printf("\nAddress: %s",t1.address);
}
int main()
{
FILE *fp;
int choice;
struct text t1;
fp=fopen(fname,"a+");
fread(&t1,sizeof(t1),1,fp);
printf("\nPlease enter name: ");
scanf("%c",&t1.name);
fflush(stdin);
printf("\nPlease enter age: ");
scanf("%d",&t1.age);
fflush(stdin);
printf("\nPlease enter address: ");
scanf("%s",&t1.address);
fflush(stdin);
printf("\nConfirm? (Y/N): ");
scanf("%c",&choice);
if (choice == 'y' | choice == 'Y')
{
fp=fopen(fname,"a+");
fwrite(&t1,sizeof(t1),1,fp);
fclose(fp);
fflush(stdin);
system("cls");
printing();
}
else if (choice == 'n' | choice == 'N')
{
fflush(stdin);
system("cls");
printing();
}
else
fflush(stdin);
system("cls");
printf("Please try again!");
system("pause");
}
Aus irgendeinem Grund beginnen Anfänger Tutorials immer mit Beispielen, die interaktive Dialoge mit dem Benutzer über scanf erfordern. scanf ist ein bisschen schwierig zu bedienen und es ist nicht sofort offensichtlich, warum es schwierig ist. –
"char" Typ in C ist ein einzelnes Zeichen, bevor Sie diesen Code beenden, sollten Sie schauen, wie Char Array funktioniert/Zeiger, und was "&" in C – mou