Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » scanf oder was anderes?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.10.2003, 16:07 Uhr
geissbock



ich will den eingabestrom abspeichern. wenn ich scanf nehme und zwei wörter eingebe nimmt er nur das erste. wie kann ich das umgehen? oder gibt es eine bessere möglichkeit als scanf?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.10.2003, 16:14 Uhr
geissbock



also gehen tut es mit gets(). oder habt ihr noch andere möglichkeiten?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.10.2003, 16:24 Uhr
typecast
aka loddab
(Operator)


Ist vorher bekannt, wieviele Wörter eingelesen werden sollen?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.10.2003, 16:35 Uhr
geissbock



ne. kann von einem zeichen bis zu vielen wörtern variieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.10.2003, 17:12 Uhr
0xdeadbeef
Gott
(Operator)


gets ist unsicher. Nimm fgets und benutze stdin als file descriptor:

C++:
#include <stdio.h>

/* ... */

char buffer[256];
fgets(buffer, 256, stdin);


fgets liest nie mehr als den zweiten Parameter an Zeichen ein. Normalerweise gibst du die Länge des Buffers, den du alloziiert hast an, um den Buffer auszureizen, aber keinen Segfault zu produzieren.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 23.10.2003 um 17:14 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.10.2003, 17:33 Uhr
geissbock



kann ich einfach rausfinden wieviel zeichen eingegeben wurden?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.10.2003, 17:37 Uhr
Pablo
Supertux
(Operator)


klar, strlen(buffer);

buffer ist immerhin ein char*
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.10.2003, 17:45 Uhr
geissbock



da kommt man auf das einfachste nicht mehr.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: