scanf ließt nur bis zum ersten Leerzeichen

Gast #956981
Lesenswert?

Hi

Habe ein Problem mit meinem UART und dem Einlesen eines Strings.
Es wird nämlich nur bis zum erstn auftauchenden Leerzeichen gelesen.
1
unsigned char uart0_getchar (void)
2
{  while(!(UCSR0A & (1<<RXC0)));
3
  return(UDR0);
4
};
5

6
fdevopen (uart0_putchar, uart0_getchar);
7

8
char buffer[30];
9
scanf("%s",buffer);

Der String den ich einlesen will, sieht so aus:
"+CPAS: 0"

Gelesen wird aber nur das: "+CPAS:"

Weiß jemand um Rat?

mfg
Gast #957062
Lesenswert?

Das Blank ist für scanf ein Delimiter. Deshalb ist das so.
Lese zweimal:
1
scanf("%s %s",buffer1, buffer2);
und hänge die beiden Teilstrings aneinander.

Oder lese mit fgetc solange, bis das Zeilenende erreicht ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren