Wczytywanie liczb z ciągu znaków

Wczytywanie liczb z ciągu znaków
Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

Dzień Dobry mam za zadanie napisać program który po wpisaniu słowa Enqueue i cyfy x ,wprowadzi tę cyfrę X do kolejki.I właśnie w tym tkwi mój problem ponieważ o ile mozna sprawdzić czy uzytkownik podał słowo Enqueue to nie jest problemem ale jak sprawdzić czy po tym słowie podał cyfrę i jak tę cyfrę umieścić w kolejce ? oto mój teraźniejszy kod:

Enqueue x - komenda nakazująca umieszczenie liczby całkowitej x w kolejce

Kopiuj
string str;
cin>>str;
if(str=="Enqueue")
cin>>wlozyc;
enqueue(wlozyc);
edytowany 2x, ostatnio: flowCRANE
flowCRANE
Tagowanie wątków – zapoznaj się z tym artykułem i śmieć w tagach.
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Szczecin
0
Kopiuj
string str;
cin>>str;
if(str=="Enqueue")
if(cin>>wlozyc)
    enqueue(wlozyc);

Możesz też pobawić się w regexy jak chcesz większe rozwiązanie.


Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

kq dzięki za szybką odpowiedź lecz po zastosowaniu poniższego kodu, i wpisaniu w komendy Enqueue15 lub Enqueue 15 kod wyskakuje komunikat: Aby kontynuować, naciśnij dowolny klawisz.

Kopiuj
int wlozyc;
string str;
cin>>str;

if(str=="Enqueue")
if(cin>>wlozyc)
enqueue(wlozyc)
edytowany 2x, ostatnio: Cisi204
Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

Bardziej mnie ciekawi czy jest jakiś sposób aby sprawdzić czy użytkownik podaje ciąg znaków , po ciągu znak biały , po znaku białym liczbę . Jeśli tak to tę właśnie liczbę wstawiamy do kolejki.

lion137
  • Rejestracja:około 8 lat
  • Ostatnio:minuta
  • Postów:4915
0

Jaki Masz system i kompilator; na linuxie z gcc (kompilacja: g++ <nazwa.cpp>) kod podany przez @kq działa tak jak powinien, gdy podam Enqueue 123 lub Enqueue enter 123. Nie ma znaczenia ile jest spacji między Enqueue a 123.


tajny_agent
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:1340
1

Np. z użyciem stringstream i tuple

Kopiuj
using Command = tuple<string,int>;

Command parseInput(const string& input)
{
  string cmd;
  int val;
  stringstream ss{input};
  if (ss >> cmd >> val) {
    return make_tuple(cmd, val);
  }
  return {"", -1};
}

void func()
{
  string userInput;
  getline(cin, userInput);
  auto [token, value] = parseInput(userInput);
  if (token == "Enqueue") {
    cout << "Value -> " << value << "\n";
  }
}

"I love C++. It's the best language in the world right now for me to write the code that i need and want to write"
~ Herb Sutter
Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

Wszystko działa tylko spoj wywala ze przekroczono limit czasu co jest grane ?

Kopiuj
#include<iostream>
using namespace std;
#include <string>
const int SIZE=10;

int A[SIZE];
int front =-1;
int rear =-1;


bool isempty()
{
	if(front ==-1 && rear==-1)
	return true;
	else
	return false;
}

void enqueue(int value)
{
if(rear==SIZE-1)
	cout<<"QUEQUE is full \n";
else
{
	if(front==-1)
		front=0;
	rear++;
	A[rear]=value;
	cout<<"--->";


	
}

}

void dequeue()
{
	if(isempty())
		cout<<"QUEQUE is empty\n";
	else
		if(front==rear)
			front=rear=-1;
	
		else front++;
		cout<<A[front-1];
		
		
}



void displayQueue()
{
if(isempty())
	cout<<"QUEUE is empty\n";
else
{
	for(int i=front;i<=rear;i++)
		cout<<A[i]<<"\n";
}
}


int main(){

int ile;
cin>>ile;


for(int i=0;i<ile;i++){
string str;
cin>>str;
int wlozyc;

if(str=="Enqueue")
if(cin>>wlozyc)
enqueue(wlozyc);


if(str=="Dequeue")
dequeue();



if(str=="Print")
displayQueue();

}

return 0;
}
edytowany 2x, ostatnio: Cisi204
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

system("pause"); - po co to?


Patryk27
Mówisz, że SPOJ wymaga przetrzymania konsoli? ;-)
vpiotr
Może nie był na zajęciach z #ifdef. Albo z lenistwa.
Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

bez systemu tez przekroczony limit

Na spoju jest polecenie aby to zadanie zrealizować przy pomocy 10 elmentowej tablicy , więc listy odpadają . Macie może pomysł dlaczego wypluwa mi przekroczony limit czasu ?

Kopiuj
#include <iostream>
using namespace std;
#include <string>
const int SIZE = 10;

int A[SIZE];
int front = -1;
int rear = -1;

bool isempty() {
  if (front == -1 && rear == -1)
    return true;
  else
    return false;
}

void enqueue(int value) {
  if (rear == SIZE - 1)
    cout << "QUEQUE is full \n";
  else {
    if (front == -1)
      front = 0;
    rear++;
    A[rear] = value;
    cout << "--->";
  }
}

void dequeue() {
  if (isempty())
    cout << "QUEQUE is empty\n";
  else if (front == rear)
    front = rear = -1;

  else
    front++;
  cout << A[front - 1];
}

void displayQueue() {
  if (isempty())
    cout << "QUEUE is empty\n";
  else {
    for (int i = front; i <= rear; i++)
      cout << A[i] << "\n";
  }
}

int main() {
  int ile;
  cin >> ile;

  for (int i = 0; i < ile; i++) {
    string str;
    cin >> str;
    int wlozyc;

    if (str == "Enqueue")
      if (cin >> wlozyc)
        enqueue(wlozyc);

    if (str == "Dequeue")
      dequeue();

    if (str == "Print")
      displayQueue();
  }

  return 0;
}
edytowany 1x, ostatnio: flowCRANE
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Szczecin
0

Na spoju prawie zawsze polecenie obejmuje wyłącznie wejście i wyjście, a nie detale implementacyjne. Co to za zadanie?


Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:minuta
  • Postów:4915
0

Procedury drukowały nie to co miał na myśli autor programu, Porównaj tę wersję z poprzednią. Masz buga w funkcji dequeue, uruchomienie i :

Kopiuj
➜  tests ./a.out       
2
Enqueue 1
--->
Dequeue
0 

Jak widać w kolejce miało być jeden a nie zero. Kod (dequeue nie zdebugowana):

Kopiuj
#include <iostream>
using namespace std;
#include <string>
const int SIZE = 10;
 
int A[SIZE];
int front = -1;
int rear = -1;
 
bool isempty() {
  if (front == -1 && rear == -1)
    return true;
  else
    return false;
}
 
void enqueue(int value) {
  if (rear == SIZE - 1)
    cout << "Error: queue is full \n";
  else {
    if (front == -1)
      front = 0;
    rear++;
    A[rear] = value;
    cout << "--->\n";
  }
}
 
void dequeue() {
  if (isempty())
    cout << "Error: queue is empty\n";
  else if (front == rear)
    front = rear = -1;
    
 
  else
    front++;
  cout << A[front - 1] << "\n";
}
 
void displayQueue() {
  if (isempty())
    cout << "Print: queue is empty\n";
  else {
	  cout << "Print:";
    for (int i = front; i <= rear; i++)
      cout <<" "<< A[i];
  }
  cout << " \n";
}
 
int main() {
  int ile;
  cin >> ile;
 
  for (int i = 0; i < ile; i++) {
    string str;
    cin >> str;
    int wlozyc;
 
    if (str == "Enqueue")
      if (cin >> wlozyc)
        enqueue(wlozyc);
 
    if (str == "Dequeue")
      dequeue();
 
    if (str == "Print")
      displayQueue();
  }
 
  return 0;
}

Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

Porównuje tę wersję z poprzednią i ten bug jest nadal . Problem tkwi zapewne tutaj tak ? ** cout << A[front - 1] << "\n";**

Kopiuj
void dequeue() {
  if (isempty())
    cout << "Error: queue is empty\n";
  else if (front == rear)
    front = rear = -1;
 
  else
    front++;
  cout << A[front - 1] << "\n";
}
lion137
Napisałem, że dequeue jest nie zdebugowana. Jak w kolejce były dwa elementy(1, 2), to podawał poprawnie 1.
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:minuta
  • Postów:4915
0

Wydaje się, że ta dequeue jest poprawna:

Kopiuj
void dequeue() {
  if (isempty()){
    cout << "Error: queue is empty\n";
	}
  else if (front == rear){
	 cout << A[front] << "\n";
    front = -1;
    rear =  -1;
    }
  else{
    front++;
     cout << A[front - 1] << "\n";
  }
}

Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

Tak ten kod pokazuje prawidłowe wyniki , tylko na spoju wypluwa informację o przekroczonym czasie

Kopiuj
#include <iostream>
using namespace std;
#include <string>
const int SIZE = 10;
 
int A[SIZE];
int front = -1;
int rear = -1;
 
bool isempty() {
  if (front == -1 && rear == -1)
    return true;
  else
    return false;
}
 
void enqueue(int value) {
  if (rear == SIZE - 1)
    cout << "Error: queue is full \n";
  else {
    if (front == -1)
      front = 0;
    rear++;
    A[rear] = value;
    cout << "--->\n";
  }
}
 
void dequeue() {
  if (isempty()){
    cout << "Error: queue is empty\n";
    }
  else if (front == rear){
     cout << A[front] << "\n";
    front = -1;
    rear =  -1;
    }
  else{
    front++;
     cout << A[front - 1] << "\n";
  }
}
 
void displayQueue() {
  if (isempty())
    cout << "Print: queue is empty\n";
  else {
      cout << "Print:";
    for (int i = front; i <= rear; i++)
      cout <<" "<< A[i];
  }
  cout << " \n";
}
 
int main() {
  int ile;
  cin >> ile;
 
  for (int i = 0; i < ile; i++) {
    string str;
    cin >> str;
    int wlozyc;
 
    if (str == "Enqueue")
      if (cin >> wlozyc)
        enqueue(wlozyc);
 
    if (str == "Dequeue")
      dequeue();
 
    if (str == "Print")
      displayQueue();
  }
 
  return 0;
}
MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:3 minuty
0

Gdzie w treści zadania masz napisane, że na początku masz liczbę rozkazów kolejki?
Nie masz!
Więc nic się nie wczytuje, w zmiennej pozostaje śmieć, który może być dużą liczbą i twój program się nie kończy w wyznaczonym czasie.

Popraw tak:

Kopiuj
int main()
{
    string str;
    while (cin >> str) {
        int wlozyc;

        if (str == "Enqueue") {
            if (cin >> wlozyc) {
                enqueue(wlozyc);
            }
        } else if (str == "Dequeue") {
            dequeue();
        } else  if (str == "Print") {
            displayQueue();
        }
    }

    return 0;
}

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 2x, ostatnio: MarekR22
Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

Witam po zastosowaniu tego kody Spoj wyrzuca Błędną odpowiedz , czy ktoś wie jaki jest tego powód ?

Kopiuj
#include <iostream>
using namespace std;
#include <string>
const int SIZE = 10;
 
int A[SIZE];
int front = -1;
int rear = -1;
 
bool isempty() {
  if (front == -1 && rear == -1)
    return true;
  else
    return false;
}
 
void enqueue(int value) {
  if (rear == SIZE - 1)
    cout << "Error: queue is full \n";
  else {
    if (front == -1)
      front = 0;
    rear++;
    A[rear] = value;
    cout << "--->\n";
  }
}
 
void dequeue() {
  if (isempty()){
    cout << "Error: queue is empty\n";
    }
  else if (front == rear){
     cout << A[front] << "\n";
    front = -1;
    rear =  -1;
    }
  else{
    front++;
     cout << A[front - 1] << "\n";
  }
}
 
void displayQueue() {
  if (isempty())
    cout << "Print: queue is empty\n";
  else {
      cout << "Print:";
    for (int i = front; i <= rear; i++)
      cout <<" "<< A[i];
  }
  cout << " \n";
}
 
int main()
{
    string str;
    while (cin >> str) {
        int wlozyc;
 
        if (str == "Enqueue") {
            if (cin >> wlozyc) {
                enqueue(wlozyc);
            }
        } else if (str == "Dequeue") {
            dequeue();
        } else  if (str == "Print") {
            displayQueue();
        }
    }
 
    return 0;
}
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Szczecin
0

Nie jestem pewien co do poprawności samego kodu, ale to nie jest zgodne z przykładem:

Kopiuj
  if (isempty())
    cout << "Print: queue is empty\n";
  else {
      cout << "Print:";
    for (int i = front; i <= rear; i++)
      cout <<" "<< A[i];
  }
  cout << " \n";

Dla pustej wypiszesz Print: queue is empty\n \n


Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

A jakie masz zastrzeżenia do kodu ?

Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

Mój kod po waszych radach wygląda następująco , lecz problem błędnej odpowiedzi jest nadal

Kopiuj
#include <iostream>
using namespace std;
#include <string>
const int SIZE = 10;
 
int A[SIZE];
int front = -1;
int rear = -1;
 
bool isempty() {
  if (front == -1 && rear == -1)
    return true;
  else
    return false;
}
 
void enqueue(int value) {
  if (rear == SIZE - 1)
    cout << "Error: queue is full \n";
  else {
    if (front == -1)
      front = 0;
    rear++;
    A[rear] = value;
    cout << "--->\n";
  }
}
 
void dequeue() {
  if (isempty()){
    cout << "Error: queue is empty\n";
    }
  else if (front == rear){
     cout << A[front] << "\n";
    front = -1;
    rear =  -1;
    }
  else{
    front++;
     cout << A[front - 1] << "\n";
  }
}
 
void displayQueue() {
  if (isempty())
    cout << "Print: queue is empty\n";
  else {
      
    for (int i = front; i <= rear; i++)
      cout << A[i]<<"\n";
  }
  
}
 
int main()
{
    string str;
    while (cin >> str) {
        int wlozyc;
 
        if (str == "Enqueue") {
            if (cin >> wlozyc) {
                enqueue(wlozyc);
            }
        } else if (str == "Dequeue") {
            dequeue();
        } else  if (str == "Print") {
            displayQueue();
        }
    }
 
    return 0;
}
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Szczecin
0

Teraz nie wypisujesz poprawnie Print: 1 2 3 4 5\n


lion137
  • Rejestracja:około 8 lat
  • Ostatnio:minuta
  • Postów:4915
1

Co ja pacze, nie zauważyłem tego buga wczoraj i straszy:)

Kopiuj
void displayQueue() {
  if (isempty())
    cout << "Print: queue is empty\n";
  else {
      cout << "Print:";
    for (int i = front; i <= rear; i++)
        cout <<" "<< A[i];
    cout << "\n";
  }
}

edytowany 2x, ostatnio: lion137
kq
ależ zdradliwa indentacja :​P
lion137
Bardzo była zdradliwa :-)
Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

lion137 oto mój kod z tym poprawionym bugiem i nadal jest blędna odpowiedź :

Kopiuj
#include <iostream>
using namespace std;
#include <string>
const int SIZE = 10;
 
int A[SIZE];
int front = -1;
int rear = -1;
 
bool isempty() {
  if (front == -1 && rear == -1)
    return true;
  else
    return false;
}
 
void enqueue(int value) {
  if (rear == SIZE - 1)
    cout << "Error: queue is full\n";
  else {
    if (front == -1)
      front = 0;
    rear++;
    A[rear] = value;
    cout << "--->\n";
  }
}
 
void dequeue() {
  if (isempty()){
    cout << "Error: queue is empty\n";
    }
  else if (front == rear){
     cout << A[front] << "\n";
    front = -1;
    rear =  -1;
    }
  else{
    front++;
     cout << A[front - 1] << "\n";
  }
}
 
void displayQueue() {
  if (isempty())
    cout << "Print: Queue is empty\n";
  else {
      cout << "Print:";
    for (int i = front; i <= rear; i++)
      cout <<" "<< A[i];
  }
  cout << " \n";
}
 
int main()
{
    string str;
    while (cin >> str) {
        int wlozyc;
 
        if (str == "Enqueue") {
            if (cin >> wlozyc) {
                enqueue(wlozyc);
            }
        } else if (str == "Dequeue") {
            dequeue();
        } else  if (str == "Print") {
            displayQueue();
        }
    }
 
    return 0;
}
edytowany 1x, ostatnio: Cisi204
lion137
Nie Poprawiłeś, drukowanie ostatniego endl w displayQueue trzeba przenieść do else tuż za pętlę.
Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

lion137 poprawione:

Kopiuj
void displayQueue() {
  if (isempty())
    cout << "Print: Queue is empty\n";
  else {
      cout << "Print:";
    for (int i = front; i <= rear; i++)
      cout <<" "<< A[i];
  }
  cout << " \n";
}
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Szczecin
0

To nie jest poprawione, to jest dokładnie to samo na co zwróciłem uwagę kilka postów temu


Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

Wiem że problem jest zapewne trywialny ale powiedz mi co z tym jest nie tak

Kopiuj
void displayQueue() {
  if (isempty())
    cout << "Print: Queue is empty\n";
  else {
      cout << "Print:";
    for (int i = front; i <= rear; i++)
      cout <<" "<< A[i];
  }
  
  }
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Szczecin
0

Nie drukujesz znaku końca linii dla wariantu niepustego


Cisi204
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 2 lata
  • Postów:232
0

Czyli tak będze

Kopiuj
void displayQueue() {
  if (isempty())
    cout << "Print: Queue is empty\n";
  else {
      cout << "Print:";
    for (int i = front; i <= rear; i++)
      cout <<" "<< A[i]<<"\n";
  }
  
  }
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Szczecin
1

Programujesz metodą Monte Carlo? Wstawiasz losowe rzeczy w losowe miejsca i liczysz na poprawny wynik?

Może po prostu zobacz odpowiedź @lion137 https://4programmers.net/Forum/1543515


edytowany 1x, ostatnio: kq
Delor
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 2 lata
0
Cisi204 napisał(a):

Wiem że problem jest zapewne trywialny ale powiedz mi co z tym jest nie tak

Popatrz dokładnie w zadanie i przykład oraz przemyśl algorytm.
Zwróć uwagę że w przykładzie wpisano w sumie 11 liczb do kolejki. Zwykłe zwiększanie zmiennych front/rear nie zadziała przy 10-elementowej tablicy.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)