Thread: [Dev-C++] system() function errors
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
|
From: Noorez K. <coo...@ho...> - 2004-06-24 03:00:57
|
this program is ignoring the system() functions
//quiz maker!
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <conio.h>
using namespace std;
class Quiz
{
private:
char question[1000];
char answerA[1000];
char answerB[1000];
char answerC[1000];
char answerD[1000];
char answerT;
char answerF;
char actual;
public:
static int questionNumb;
static int type;
Quiz createQuestion();
void writeQuestion(Quiz ques, int type,char* quizName);
};
int Quiz::questionNumb = 1;
int Quiz::type = 0;
Quiz Quiz::createQuestion()
{
Quiz ques;
system("cls");
cout << "What kind of question do you want question " <<
Quiz::questionNumb << " to be\n";
real1:
cout << "A. Multiple choice.. or B. True/False [a\\b] ";
char choice;
cin >> choice;
cin.sync();
if(!(choice == 'a' || choice == 'b'))
{
cout << "Choice must be a or b\n";
goto real1;
}
if(choice == 'a' || choice == 'A')
{
type = 1;
cout << "\nType the question in\n\n";
cin.getline(ques.question,1000);
cout << "Type in answer A. ";
cin.getline(ques.answerA,1000);
cout << "Type in answer B. ";
cin.getline(ques.answerB,1000);
cout << "Type in answer C. ";
cin.getline(ques.answerC,1000);
cout << "Type in answer D. ";
cin.getline(ques.answerD,1000);
real2:
cout << "Give us the real answer: ";
cin >> ques.actual;
cin.sync();
if(!(ques.actual == 'a' || ques.actual == 'b'
|| ques.actual == 'c' || ques.actual == 'd') )
{
cout << "Real answer must be a,b,c or d\n";
goto real2;
}
}
if(choice == 'b' || choice == 'B')
{
type = 2;
cout << "\nType in the statement\n\n";
cin.getline(ques.question,1000);
real3:
cout << "Give us the real answer: ";
cin >> ques.actual;
cin.sync();
if(!(ques.actual == 't' || ques.actual == 'f'))
{
cout << "Real answer must be t or f\n";
goto real3;
}
}
return ques;
}
void Quiz::writeQuestion(Quiz ques, int type, char* quizName)
{
ofstream out_file(quizName,ios::app);
if(type == 1)
{
out_file << "~\n" << questionNumb << ". " << ques.question << '\n'
<< '\n';
out_file << "A. " << ques.answerA << '\n';
out_file << "B. " << ques.answerB << '\n';
out_file << "C. " << ques.answerC << '\n';
out_file << "D. " << ques.answerD << '\n';
out_file << '~' << ques.actual << '\n';
}
if(type == 2)
{
out_file << "~\n" << questionNumb << ". " << ques.question << '\n';
out_file << "True or False\n";
out_file << '~' << ques.actual << '\n';
}
}
int main()
{
cout << "Welcome to the quiz maker.\n";
cout << "With this program you can make a Multiple Choice/True or False
quiz.\n";
getName:
cout << "We need the name of the quiz file: ";
char* quizName = new char;
cin.getline(quizName,123);
strcat(quizName,".qz");
fstream fs(quizName);
if(fs)
{
cout << "File name in use.\n";
goto getName;
}
cout << endl << "\nLets start making questions!\n";
system("pause");
system("cls");
Quiz question;
char contin;
do
{
question = question.createQuestion();
question.writeQuestion(question,Quiz::type,quizName);
Quiz::questionNumb = Quiz::questionNumb+1;
cout << "\nDo you want to add another question [Y\\N] ";
do
{
cin >> contin;
}while(contin == 'y' && contin == 'Y' && contin == 'n' && contin ==
'N');
}while(contin == 'y' || contin == 'Y');
}
_________________________________________________________________
http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI=1034&SU=http://hotmail.com/enca&HL=Market_MSNIS_Taglines
|
|
From: Per W. <pw...@ia...> - 2004-06-24 06:25:29
|
First of all - stop using goto everywhere. You'r logic isn't advanced
enough to need it.
Second - it isn't enough to do
char* quizName = new char;
cin.getline(quizName,123);
new char allocates a single character! If you want a string, you should
either usse "new char[<my_string_length>] or look into the string class.
As long as you do "new char;" you can't expect _any_ part of your program
to work!
/Per W
On Wed, 23 Jun 2004, Noorez Kassam wrote:
> this program is ignoring the system() functions
>
> //quiz maker!
> #include <iostream>
> #include <fstream>
> #include <cstdlib>
> #include <conio.h>
> using namespace std;
>
> class Quiz
> {
> private:
> char question[1000];
> char answerA[1000];
> char answerB[1000];
> char answerC[1000];
> char answerD[1000];
> char answerT;
> char answerF;
> char actual;
>
> public:
> static int questionNumb;
> static int type;
> Quiz createQuestion();
> void writeQuestion(Quiz ques, int type,char* quizName);
> };
>
> int Quiz::questionNumb = 1;
> int Quiz::type = 0;
>
> Quiz Quiz::createQuestion()
> {
> Quiz ques;
> system("cls");
> cout << "What kind of question do you want question " <<
> Quiz::questionNumb << " to be\n";
> real1:
> cout << "A. Multiple choice.. or B. True/False [a\\b] ";
> char choice;
> cin >> choice;
> cin.sync();
> if(!(choice == 'a' || choice == 'b'))
> {
> cout << "Choice must be a or b\n";
> goto real1;
> }
> if(choice == 'a' || choice == 'A')
> {
> type = 1;
> cout << "\nType the question in\n\n";
> cin.getline(ques.question,1000);
> cout << "Type in answer A. ";
> cin.getline(ques.answerA,1000);
> cout << "Type in answer B. ";
> cin.getline(ques.answerB,1000);
> cout << "Type in answer C. ";
> cin.getline(ques.answerC,1000);
> cout << "Type in answer D. ";
> cin.getline(ques.answerD,1000);
> real2:
> cout << "Give us the real answer: ";
> cin >> ques.actual;
> cin.sync();
> if(!(ques.actual == 'a' || ques.actual == 'b'
> || ques.actual == 'c' || ques.actual == 'd') )
> {
> cout << "Real answer must be a,b,c or d\n";
> goto real2;
> }
> }
> if(choice == 'b' || choice == 'B')
> {
> type = 2;
> cout << "\nType in the statement\n\n";
> cin.getline(ques.question,1000);
> real3:
> cout << "Give us the real answer: ";
> cin >> ques.actual;
> cin.sync();
> if(!(ques.actual == 't' || ques.actual == 'f'))
> {
> cout << "Real answer must be t or f\n";
> goto real3;
> }
> }
> return ques;
> }
>
> void Quiz::writeQuestion(Quiz ques, int type, char* quizName)
> {
> ofstream out_file(quizName,ios::app);
> if(type == 1)
> {
> out_file << "~\n" << questionNumb << ". " << ques.question << '\n'
> << '\n';
> out_file << "A. " << ques.answerA << '\n';
> out_file << "B. " << ques.answerB << '\n';
> out_file << "C. " << ques.answerC << '\n';
> out_file << "D. " << ques.answerD << '\n';
> out_file << '~' << ques.actual << '\n';
> }
> if(type == 2)
> {
> out_file << "~\n" << questionNumb << ". " << ques.question << '\n';
> out_file << "True or False\n";
> out_file << '~' << ques.actual << '\n';
> }
> }
>
> int main()
> {
> cout << "Welcome to the quiz maker.\n";
> cout << "With this program you can make a Multiple Choice/True or False
> quiz.\n";
> getName:
> cout << "We need the name of the quiz file: ";
> char* quizName = new char;
> cin.getline(quizName,123);
> strcat(quizName,".qz");
> fstream fs(quizName);
> if(fs)
> {
> cout << "File name in use.\n";
> goto getName;
> }
>
> cout << endl << "\nLets start making questions!\n";
> system("pause");
> system("cls");
> Quiz question;
> char contin;
> do
> {
> question = question.createQuestion();
> question.writeQuestion(question,Quiz::type,quizName);
> Quiz::questionNumb = Quiz::questionNumb+1;
> cout << "\nDo you want to add another question [Y\\N] ";
> do
> {
> cin >> contin;
>
> }while(contin == 'y' && contin == 'Y' && contin == 'n' && contin ==
> 'N');
>
> }while(contin == 'y' || contin == 'Y');
> }
>
> _________________________________________________________________
> http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI=1034&SU=http://hotmail.com/enca&HL=Market_MSNIS_Taglines
>
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by Black Hat Briefings & Training.
> Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
> digital self defense, top technical experts, no vendor pitches,
> unmatched networking opportunities. Visit www.blackhat.com
> _______________________________________________
> Dev-cpp-users mailing list
> Dev...@li...
> TO UNSUBSCRIBE: http://www23.brinkster.com/noicys/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
>
|