std::cout

For mer info klikk her.

Intro

std::cout er c++ sin metode for å printe ut til terminalen. For å bruke std::cout må man inkludere <iostream>. I eksempelet under ser du hvordan man bruker std::cout til å printe ut en string og sammelignet med den ekvivalente koden i python.

		

#include <iostream>
int main()
{
	std::cout << "Hello world\n";
	// python: print("Hello world")
}

	

Merk her at i c++ må man inkludere \n (newline) for å sørge for at neste linje som blir skrevet ut, blir skrevet på ny linje. Dette er i motsetning til python hvor default/standard er at print inkluderer newline, men kan evenutelt fjernes. Dette betyr at det er enkelt i c++ å skrive videre på samme linje hvis man ønsker.

std::endl

Ettersom det er relativt vanlig å avslutte med newline er det std::endl implementert for å gi en litt mer intuitv måte å avslutte linjen på.

		

std::cout << "Hello world" << std::endl;

	

Printe mer enn én ting

Som vi så over er det mulig å printe ut flere ting om gangen. Her "Hello world" og std:cin. std:cout kan ha vilkårlig antall ledd på denne måten.

		

std::cout << "Hello, " << "I " << "am " << 10 << " years " << "old." << std::endl;

	

Støtte mange typer

En av fordelene med std::cout er at den støtter mange forskjellige typer.

		

std::cout << "int: " << 565 << std::endl;
std::cout << "double: " << 3.14 << std::endl;
std::cout << "char: " << 'c' << std::endl;
std::cout << "bool: " << true << std::endl;

	

Overlasting av <<-operatoren

std::cout støtter ikke alle typer uten videre. For eksempel vil ikke std::cout uten videre vite hvordan den skal printe ut egendefinerte klasser. For å printe ut egendefinerte klasser må vi først overskrive <<-operatoren.

		

// Headerfil (person.hpp)

#pragma once
#include <string>
#include <ostream>

class Person
{
private:
	std::string fornavn;
	std::string etternavn;
public:
	Person(std::string fornavn, std::string etternavn) : fornavn(fornavn), etternavn(etternavn) {};
	std::string getFornavn() {return fornavn;}
	std::string getEtternavn() {return etternavn;}
};

std::ostream& operator<<(std::ostream& os, Person &person);

	
		

// Implemetasjonsfil (person.cpp)

#include "person.hpp"

std::ostream& operator<<(std::ostream& os, Person &person) {
	return os << person.getFornavn() << " " << person.getEtternavn();
}

	
		

// Hovedfil (main.cpp)

#include <iostream>
#include "foodPriceMap.hpp"
#include "person.hpp"
int main()
{
	Person Ola{"Ola", "Normann"};
	std::cout << "Person: " << Ola << std::endl;
}

	

std::cin, input

Se artikkelen om cin for å lese om hvordan man tar imot input fra brukeren i terminalen.