このプログラムで一種のアサーションエラーが発生しましたが、残念ながら私はC ++にまったく慣れておらず、これが何を意味するのかわかりません。
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime> // for time()
#include <windows.h> // for Sleep()
using namespace std;
string TakingInput()
{
cout << "What do you want to say? ";
string a;
getline(cin, a);
return a;
}
// Generate a random number between nLow and nHigh (inclusive)
unsigned int GetRandomNumber(int nLow, int nHigh)
{
return (rand() % (nHigh - nLow + 1)) + nLow;
}
string jokeplease(string strInput)
{
while (strInput.compare("jokeplease") == 0)
{
cout << endl;
// This generates a randomnumber
int nRandomNumber = GetRandomNumber(1, 10);
// Every joke has a number which when stated true will show the specified joke
if(nRandomNumber == 1)
{
cout << "Alle barna skrev dikt unntatt Ruben, for han kunne ikke rime." << endl;
}
else if(nRandomNumber == 2)
{
cout << "Gubben va på kafe og overhørte følgende fra et forelsket par: ”Olga æ e så\n" <<
"forelska i dæ at når æ ser på dæ så klar æ næsten ikke å ta te mæ føde.” Gubben\n" <<
"syns at det dær va fine ord som han skulle overføre på kjærringa når han kom\n" <<
"hjem. Da dæm satt i kjøkkenkroken å kosa sæ med en kopp kaffe, så utbrøut han:\n" <<
"”Marta, når æ ser på dæ, så mest æ reint matløsta!”" << endl;
}
else if(nRandomNumber == 3)
{
cout << "Alle barna så inn i komfyren untatt Knut han så ut." << endl;
}
else if(nRandomNumber == 4)
{
cout << "En blondine kjører bak en lastebil og gir signal til sjåføren om å stoppe,\n" <<
"sjåføren stopper og blondine sier \"du mister lasten din\", sjåføren bare kjører\n" <<
"vidre. etter litt gir blondine signal om at han skal stoppe igenn og hun sier\n" <<
"\"du mister lasta di!\" sjåføren bryr seg ikke og kjører vidre. etter litt gir\n" <<
"blondine signal om at sjåføren skal stoppe og sjåføren sier \"du, det er midt på\n" <<
"vinteren, og jeg er ute og strør\"" << endl;
}
else if(nRandomNumber == 5)
{
cout << "Alle barna gjorde fra seg i potta utenom Hanne, hun gjorde det i spannet." << endl;
}
else if(nRandomNumber == 6)
{
cout << "Noen plasser sjekker legen hva barnet kommer til å bli ved å stikke hånden\n" <<
"sin opp i ræven på ungen. Hvis det skriker blir det en sanger, hvis det sparker\n" <<
"vil det bli en fotballspiller og hvis det smiler blir den en homse." << endl;
}
else if(nRandomNumber == 7)
{
cout << "Norsken, dansken og svensken skulle bade i et badebaseng. Når de kom til\n" <<
"badebasenget sa en dame: Det basenget er magisk. Du får et ønske. Da de kom\n" <<
"bort til bassenget sa norsken: Jeg ønsker meg masse sjokolade. Så ble bassenget\n" <<
"helt fullt med masse sjokolade. Så spiste han det opp. Så sa dansken: jeg ønsker\n" <<
"meg masse bananer. Så var det masse bananer i bassenget. Så gikk svensken bort\n" <<
"til bassenget, og så sklei han på bananskallet til dansken. Så sa han skitt og\n" <<
"da ble bassenget helt fullt med dritt." << endl;
}
else if(nRandomNumber == 8)
{
cout << "Tre gutter ble sendt til rektor.\n" <<
"\"Hva har dere gjort for noe galt da?\" spurte rektor.\n" <<
"\"Jeg har kastet stein i vannet\", svarte den ene.\n" <<
"…" <<
"\"Tja, det er vel ikke så farlig\", sa rektor.\n" <<
"\"Men hva har du gjort da?\" sa han til den andre.\n" <<
"\"Jeg har også kastet stein i vannet.\"\n" <<
"\"Det er vel ikke så farlig. Hva har du gjort da?\" sa han til den tredje.\n" <<
"\"Det er jeg som er Stein…\"" << endl;
}
else if(nRandomNumber == 9)
{
cout << "En brunette og en blondine hopper ut fra et fly. Hvem lander først, og hvorfor?\n" <<
"Brunetta lander først, fordi blondina stopper 5 ganger for å spørre om veien." << endl;
}
else if(nRandomNumber == 10)
{
cout << "Martin: - Gaute er god til å kaste ball.\n" <<
"Mor: - Jasså?\n" <<
"Martin: - Ja, han traff lillebroren sin i hodet fra 5 meter!" << endl;
}
else
{
cout << "Error: Unexpected result when retrieving randomnumber!" << endl;
}
cout << endl;
return 0;
}
return 0;
}
void OtherStatements(string strInput)
{
if(strInput.compare("what") == 0||strInput.compare("what?") == 0||strInput.compare("WHAT?") == 0)
{
cout << "WHAT?? WHAAAAAAAAAAAAAAT? WHHHAEEEHT? WHAEET WHAET ...";
Sleep(3000);
cout << "what?" << endl;
}
}
string ExitTime(string strInput)
{
while (strInput.compare("bedtime") == 0||strInput.compare("leave") == 0)
{
cout << "Do you want to leave? ";
string strExitLine;
getline(cin, strExitLine);
if (strExitLine.compare("yes") == 0||strExitLine.compare("YES") == 0)
{
cout << endl;
cout << "Whatever! I'm bored!" << endl;
cout << "See you later!" << endl;
exit(1);
}
else if (strExitLine.compare("no") == 0||strExitLine.compare("NO") == 0)
{
cout << endl;
cout << "Well stop whining then!" << endl;
break;
}
else
{
cout << endl;
cout << "I'm a bloddy computer! Speak computer-friendly!" << endl;
}
}
return 0;
}
int main()
{
cout << "JokePlease v0.01\n" << endl;
// Taking an input from the user
string strInput = TakingInput();
// This prints a random joke when jokeplease is entered
jokeplease(strInput);
// Other statements than jokeplease goes here
OtherStatements(strInput);
// Here you come when it's time to leave!
ExitTime(strInput);
return 0;
}
エラーなしでプログラムをコンパイルできますが、すぐにconsole-cin(関数内にあります)に何かを書き込むとTakingInput
、クラッシュしてエラーが出力されます。
エラーメッセージに出力された式は、、Expression: invalid null pointer
および...について何かを示していますc:\program ... include\xtring line: 930
。
少し初心者を助けてください。