ganze wörter mit scanf einlesen?
-
hallo!

also ich bastel gerne bischen mit c++ rum
zur zeit bin ich auf diesem wissensstand:#include "stdafx.h" #include <iostream> #include <ctime> #include <cstdlib> #include <conio.h> #include <time.h> int main(void) { int eingabe, zufall, x, maxwert, versuche; x=1; maxwert=1; versuche=1; printf ("\n\n________________________________________________________________________________\nWillkommen zu:\nZahlenraten!\n\n\nBis zu welchem Zahlenwert soll das Programm arbeiten??\n\nZahlenbereich 0 bis "); scanf ("%i",&maxwert); srand(time(NULL)); zufall=rand() % maxwert; versuche=5+maxwert/225; if (versuche>20) { versuche=20; } fflush (stdin); printf ("\n\n________________________________________________________________________________\nEs wird eine Zahl von 0 bis %i gesucht.\n\nSie haben %i Versuche diese Zahl zu finden.\nDas Programm zeigt Ihnen an, ob Ihr Vorschlag\n\x81 \bber oder unter der gesuchten Zahl liegt.\n\n________________________________________________________________________________\n\nIhre Vermutung: ",maxwert,versuche); scanf ("%i",&eingabe); do { if (eingabe>maxwert) { printf ("\n\nFalsche Eingabe!!!\n\nIhre neue Vermutung: "); } else if (eingabe<zufall) { printf ("\n\nDie Zahl ist gr\x94\xe1\er als %i!\nSie haben noch %i Versuche!!\n\nIhre neue Vermutung: ",eingabe, versuche-x); x++; } else if (eingabe>zufall) { printf ("\n\nDie Zahl ist kleiner als %i!\nSie haben noch %i Versuche!!\n\nIhre neue Vermutung: ",eingabe, versuche-x); x++; } else if (eingabe==zufall) { printf ("\nVolltreffer!!!!!\n\nSie haben das Game mit dem Maximalwert %i abgeschlo\xe1\en!\nSie haben dazu %i Versuche von den %i gebraucht!\n\n", maxwert, x, versuche); x=1; } scanf ("%i",&eingabe); } while (x<versuche+1); if (x=versuche) {printf ("\n________________________________________________________________________________\nSie haben versagt. Die gesuchte Zahl war %i.\nSie haben sich mit %i maximalen M\x94\glichkeiten\nbei %i Versuchen wohl \x81 \bbernommen.",zufall, maxwert,versuche); {printf ("\nDas Programm wird mit der n\x84\chsten Eingbabe beendet. \nMehr Gl\x81\ck beim n\x84\chsten mal.\n________________________________________________________________________________\n"); } scanf ("%i",&eingabe); } }ich weiß das is alles bischen verwurschtelt aber soweit bin ich schon zufrieden, dass es überhaupt funktioniert.
also nun zu meiner frage:
ist es möglich mit einem scanf auch ein ganzes wort bzw mehrere wörter einzulesen?
wenn ich versuche mit "int char xyz;" einen char zu erstellen, dann ist das auch nur ein einzelner buchstabe. sollte man mittels "scanf" mehrere buchstaben eingeben und auf enter kloppen, liest er nur den ersten buchstaben des wortes/der wörter ein.
gibt es etwas anderes außer char, womit ganze wörter möglich sind?
vielen dank

-
Auch wenn du einige C++ Header eingebunden hast, aber dein gesamter Sourcecode ist reines C.
In C benötigst du ein char-Array, zb:
char cBuffer[100];und kannst dann mittels
scanf("%s", cBuffer);ein Wort einlesen (nicht mehrere, weil die Leertaste als Trennzeichen fungiert).
Zu den einzelnen scanf-Parametern s. http://msdn.microsoft.com/en-us/library/6ttkkkhh(VS.71).aspx
In C++ geht alles viel einfacher mit der Klasse 'string':
#include <string> std::string sWord; cin >> sWord; // Einlesen eines Wortes // bzw. std::string sLine; std::getline(cin, sLine); // Einlesen einer ganzen Zeile
-
hehe danke

danach hab ich gesucht