Skulle någon kunna skriva om detta lilla program så att det fungerar? Så kan jag fråga om det är några förändringar jag ej förstår...
#include <iostream>
#include <string>
using namespace std;
int main () {
string Name;
int age;
cout << "Skriv in ditt namn:" << endl;
cin >> Name >> endl;
cout << "Skriv in din alder:" << endl;
cin >> Age >> endl;
cout << "Du är" << Age << "ar och heter" << Name << endl;
}
Felmeddelanden:
C:\Documents and Settings\Ägaren\Skrivbord\C++\GetNameAndAge.cpp(11) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion)
C:\Documents and Settings\Ägaren\Skrivbord\C++\GetNameAndAge.cpp(13) : error C2065: 'Age' : undeclared identifier
C:\Documents and Settings\Ägaren\Skrivbord\C++\GetNameAndAge.cpp(13) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion)
C:\Documents and Settings\Ägaren\Skrivbord\C++\GetNameAndAge.cpp(15) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.
#include <iostream>
#include <string>
using namespace std;
int main () {
string name;
int age;
cout << "Skriv in ditt namn:" << endl;
cin >> name >> endl;
cout << "Skriv in din alder:" << endl;
cin >> age >> endl;
cout << "Du är" << age << "ar och heter" << name << endl;
}
C:\Documents and Settings\Ägaren\Skrivbord\C++\GetNameAndAge.cpp(11) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion)
C:\Documents and Settings\Ägaren\Skrivbord\C++\GetNameAndAge.cpp(13) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion)
C:\Documents and Settings\Ägaren\Skrivbord\C++\GetNameAndAge.cpp(15) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Hur gör man smartast så att programmet inte stängs så fort all kod i main() körts? Som det är nu hinner man inte se texten "Du heter abc och är x år gammal"
Jo, så löste jag faktiskt det själv (med cin i slutet alltså)!
Men är det verkligen rätt sätt att lösa det på? Känns lite som en "fullösning", om du förstår hur jag menar. ;)
return 0; - Det används eftersom att funktionen inte returnerar något, va?! Står nollan för "false", eller?
:)
*pip* Wrong answer!
Men en bra tankegång ändå, trexter :)
En return-sats (return 0;) anger att exekveringen/körningen av funktionen ska avsluta.
Med värdet 0, så talar den om att exekveringen avslutas på ett normalt sätt.
Jo, så löste jag faktiskt det själv (med cin i slutet alltså)!
Men är det verkligen rätt sätt att lösa det på? Känns lite som en "fullösning", om du förstår hur jag menar. ;)
Tack för ditt svar btw.
:)
Fult och fult. Anledningen till att du vill att ditt program ska stanna upp är ju för att ditt konsollfönster stängs ner när programmet exekverat klart. Men det är ju pga. hur du startar det (antar att du gör det via din IDE). Om du startar programmet via ett konsollfönster så kommer du ju att se resultatet efter exekvering.
Men om jag hämtar ett värde som användaren skriver in (med konstiga tecken i), sparar det sedan i en variabel och skriver sedan ut denna variabel, hur gör jag då?
Aha, det var inte de konstiga tecknen som gjorde att programet avslutades, utan att jag försökte skriva in mitt namn, förnamn och efternam med ett mellanrum emellan. Jag förmodar att man måste använda något annat än String för att kunna spara värden med mellanslag!?
Nope
Det har inte med String att göra. Det har med cin >> att göra.
När du skriver cin >> så betyder det att den läser från stnadard input (tangentbordet) tills ett mellanslag kommer. Skriver du cin.getline() istället så tar den hela raden.
getline() ska även ha några inparametrar, kommer inte ihåg dom nu på rak arm. Men jag tror det är ungefär getline( char *sträng, int storlekpåsträng )