• Nov 18, 2022 •AustinLeath
0 likes • 1 view
#include <iostream> #include <fstream> #include <string> #include <cstring> using namespace std; //This program makes a new text file that contains all combinations of two letters. // aa, ab, ..., zy, zz int main(){ string filename = "two_letters.txt"; ofstream outFile; outFile.open(filename.c_str()); if(!outFile.is_open()){ cout << "Something's wrong. Closing..." << endl; return 0; } for(char first = 'a'; first <= 'z'; first++){ for(char second = 'a'; second <= 'z'; second++){ outFile << first << second << " "; } outFile << endl; } return 0; }
• Jul 16, 2024 •LeifMessinger
0 likes • 15 views
//===============Header File================== #include <iostream> #include <sstream> //stringbuf #include <utility> //exchange //Couple rules: //Characters given through the getter functions have to be removed from the buffer. //This is so that bufferEmpty() == buffer.in_avail() > 0 basically always. //skipWhitespace doesn't remove the text from the buffer, but it does return the number of characters. //nextWord will trim whitespace before the word //nextInt will trim non-numbers before the number //hasNextInt and hasNextWord will trim the whitespace. If you think you need it, you should get nextWhitespace before doing any of those. //Whitespace after a word or an int is left on the buffer. //nextWhitespace will (get and) remove whitespace until the end of the line, including the newline character, but stops before the next line. //nextWhitespace won't read the next line when called before the end of the line, and it won't prompt the user for the next line if interactive. //If nextWhitespace is called after reading the end of the line, then it will read a new line into the buffer, which will prompt the user. //It acts like nextLine, but if there's something non-whitespace on the current line it stops there. class Scanner { public: std::stringbuf buffer; std::istream& input; Scanner(std::istream& in = std::cin) : buffer(), input(in) {} //Buffer debugging bool fillBuffer(); bool bufferEmpty(); void printBufferEmpty(); std::string getBuffer(); size_t bufferLength(); void printBufferStats(); //Int bool hasNextInt(); int nextInt(); //Word bool hasNextWord(); std::string nextWord(); //Line bool hasNextLine(); //Whitespace size_t skipWhitespace(); //Prob should be private, but I don't believe in that private shit. bool hasNextWhitespace(); std::string nextWhitespace(); std::string nextWhitespaceAll(); std::string nextLine(); }; //===============Source File================== bool Scanner::fillBuffer() { //Returns if it had to get the next line from the input. const bool badInput = input.eof() || input.bad(); const bool shouldFillBuffer = bufferEmpty() && !badInput; if (shouldFillBuffer) { std::string line; if (std::getline(input, line)) { buffer.str(buffer.str() + line + "\n"); } } return shouldFillBuffer; } bool Scanner::bufferEmpty(){ return buffer.str() == ""; } void Scanner::printBufferEmpty(){ std::cout << "The buffer is " << (bufferEmpty()? "" : "not") << " empty." << std::endl; } std::string Scanner::getBuffer(){ return buffer.str(); } size_t Scanner::bufferLength(){ return buffer.str().length(); } void Scanner::printBufferStats(){ if(bufferEmpty()){ std::cout << "The buffer is \"\"" << std::endl; return; } std::cout << "The length of the buffer is " << bufferLength() << std::endl; if(buffer.sgetc() == '\r'){ std::cout << "The buffer is \\r\\n" << std::endl; }else if(buffer.sgetc() == '\n'){ std::cout << "The buffer is \\n" << std::endl; } } bool Scanner::hasNextInt() { return hasNextWord() && (std::isdigit(buffer.sgetc()) || buffer.sgetc() == '-'); } int Scanner::nextInt() { if (!hasNextInt()) { //Will fill the buffer if not filled. Will also trim whitespace. return 0; } std::string num; size_t charactersRead = 0; while (buffer.in_avail() > 0 && (std::isdigit(buffer.sgetc()) || buffer.sgetc() == '-')) { num += buffer.sbumpc(); ++charactersRead; } buffer.str(buffer.str().erase(0, charactersRead)); return std::stoi(num); } bool Scanner::hasNextWord() { nextWhitespaceAll(); return buffer.in_avail() > 0; } std::string Scanner::nextWord() { if (!hasNextWord()) { //Will fill the buffer if not filled. Will also trim whitespace. return ""; } std::string word; size_t charactersRead = 0; while (buffer.in_avail() > 0 && !std::isspace(buffer.sgetc())) { word += buffer.sbumpc(); ++charactersRead; } buffer.str(buffer.str().erase(0, charactersRead)); return word; } bool Scanner::hasNextLine() { return (!bufferEmpty()) || fillBuffer(); } size_t Scanner::skipWhitespace() { //Returns characters read size_t charactersRead = 0; while (buffer.in_avail() > 0 && std::isspace(buffer.sgetc())) { buffer.sbumpc(); ++charactersRead; } return charactersRead; } bool Scanner::hasNextWhitespace(){ fillBuffer(); return buffer.in_avail() > 0 && std::isspace(buffer.sgetc()); } std::string Scanner::nextWhitespace() { if (!hasNextWhitespace()) { //Will fill the buffer if not filled return ""; } const size_t charactersRead = skipWhitespace(); std::string whitespace = buffer.str().substr(charactersRead); buffer.str(buffer.str().erase(0, charactersRead)); return whitespace; } std::string Scanner::nextWhitespaceAll(){ std::string whitespace; while(hasNextWhitespace()){ std::string gottenWhiteSpace = nextWhitespace(); whitespace += gottenWhiteSpace; } return whitespace; } std::string Scanner::nextLine(){ if (!hasNextLine()) { return ""; } fillBuffer(); //Swap out the old buffer with an empty buffer, and get the old buffer as a variable. std::string line = std::exchange(buffer, std::stringbuf()).str(); //Remove the newline. if(line[line.length() - 1] == '\n' || line[line.length() - 1] == '\r' ) line.pop_back(); if(line[line.length() - 1] == '\r' || line[line.length() - 1] == '\n' ) line.pop_back(); return line; } //=================Word and Int test================= while(bruh.hasNextInt() || bruh.hasNextWord()){ std::cout << "started loop" << std::endl; if(bruh.hasNextInt()){ std::cout << "Int: " << bruh.nextInt() << " " << std::endl; }else{ std::cout << "Word: " << bruh.nextWord() << " " << std::endl; } bruh.nextWhitespace(); } //===================Line test====================== for(int count = 1; bruh.hasNextLine(); ++count){ std::string line = bruh.nextLine(); std::cout << "Line " << count << ": " << line << std::endl; }
#include<iostream> using namespace std; const int rows = 8; const int cols = 8; char chessboard[rows][cols]; void setBoard(char chessboard[][cols]); void printBoard(char chessboard[][cols]); void setBoard(char chessboard[][cols]) { for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { if(i % 2 == 0 && j % 2 == 0) { chessboard[i][j] = 'x'; } else { if(i % 2 != 0 && j % 2 == 1) { chessboard[i][j] = 'x'; } else { chessboard[i][j] = '-'; } } } } return; } void printBoard(char chessboard[][cols]) { for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { cout << chessboard[i][j] << " "; } cout << endl; } return; } int main(int argc, char const *argv[]) { setBoard(chessboard); printBoard(chessboard); return 0; }
• Apr 15, 2025 •hasnaoui1
0 likes • 4 views
int main()
#include "goat.h" //include goat.h void Goat::setBreed(string breed) { this->breed = breed; } void Goat::setWeight(float weight) { this->weight = weight; } void Goat::setName(string name) { this->name = name; } void Goat::setGender(char gender) { this->gender = gender; } void Goat::setSpayed(bool goatIsSpayed) { this->goatIsSpayed = goatIsSpayed; } void Goat::setRegistrationID(string registrationID) { this->registrationID = registrationID; } void Goat::setColor(string color) { this->color = color; } void Goat::setOtherComments(string otherComments) { this->otherComments = otherComments; } string Goat::getBreed() { return breed; } float Goat::getWeight() { return weight; } string Goat::getName() { return name; } char Goat::getGender() { return gender; } bool Goat::getSpayed() { return goatIsSpayed; } string Goat::getRegistrationID() { return registrationID; } string Goat::getColor() { return color; } string Goat::getOtherComments() { return otherComments; } Goat::Goat() { breed = ""; weight = 0.0; name = ""; gender = '\0'; goatIsSpayed = false; registrationID = ""; color = ""; otherComments = ""; } Goat::Goat(string goatBreed, float goatWeight, string goatName, char goatGender, bool goatSpayedStatus, string goatRegistrationID, string goatColor, string goatOtherComments) { breed = goatBreed; weight = goatWeight; name = goatName; gender = goatGender; goatIsSpayed = goatSpayedStatus; registrationID = goatRegistrationID; color = goatColor; otherComments = goatOtherComments; } Goat::~Goat() { cout << "goat destroyed" << endl; } void Goat::printinfo() { cout << "Breed: " << breed << endl << "weight: " << weight << endl << "Name: " << name << endl << "Gender: " << gender << endl << "is Spayed: "; if(goatIsSpayed) { //here I do a logical test on boolean goatIsSpayed. if true cout << true else cout << false cout << "True"; } else { cout << "False"; } cout << endl << "Registration ID: " << registrationID << endl << "Color Description: " << color << endl << "Other Comments: " << otherComments << endl << endl; }
0 likes • 5 views
#include <iostream> using namespace std; /* Function: get_coeff Parameters: double& coeff, int pos passed from bb_4ac Return: type is void so no return, but does ask for user to input data that establishes what a b and c are. */ void get_coeff(double& coeff, int pos) { char position; if(pos == 1) { position = 'a'; } else if(pos == 2) { //a simple system to determine what coefficient the program is asking for. position = 'b'; } else { position = 'c'; } cout << "Enter the co-efficient " << position << ":"; //prompt to input coeff coeff = 5; //input coeff } /* Function: bb_4ac Parameters: no parameters passed from main, but 3 params established in function, double a, b, c. Return: b * b - 4 * a * c */ double bb_4ac() { double a, b, c; //coefficients of a quadratic equation get_coeff(a, 1); // call function 1st time get_coeff(b, 2); // call function 2nd time get_coeff(c, 3); // call function 3rd time return b * b - 4 * a * c; //return b * b - 4 * a * c } int main() { cout << "Function to calculate the discriminant of the equation. . . " << endl; double determinate = bb_4ac(); //assign double determinate to bb_4ac function cout << "The discriminant for given values is: " << determinate << endl; //output the determinate! }