Mam problem z dodaniem stringa ze spacją na stos. Dokładniej to z jego wczytaniem bo wczytuje mi znaki do pierwszej spacji :| Jak wprowadzam znak i daje enter program automatycznie pomija kolejne imię i nazwisko. Wiecie jak najprościej to prawidłowo dodać?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct stacknode {
char nameandsurname[30];
int age;
char znak;
struct stacknode *next;
};
struct stacknode *push (struct stacknode *top, int data, char nameandsurname[], char znak)
{
struct stacknode *newnode = (struct stacknode*)malloc(sizeof(struct stacknode));
if (newnode)
{
strcpy(newnode->nameandsurname, nameandsurname);
newnode->znak=znak;
newnode->age=data;
newnode->next=top;
top=newnode;
}
return top;
};
void print (struct stacknode *top)
{
while (top)
{
printf("Imie i nazwisko: %s\nWiek: %d\nZnak: %c\n\n", top->nameandsurname, top->age, top->znak);
top=top->next;
}
}
int main()
{
struct stacknode *top = NULL;
int i, age;
char znak;
char nameandsurname [30];
for (i=0; i<5; i++)
{
printf("Podaj imie i nazwisko: ");
scanf("%s", nameandsurname);
printf("Podaj wiek: ");
scanf("%d", &age);
printf("Podaj jakis znak: ");
scanf("%c ", &znak);
top=push(top, age, nameandsurname, znak);
}
return 0;
}