• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

tablica char, czyli jak enter brać za znak a nie separator.

Cloud VPS
0 głosów
2,765 wizyt
pytanie zadane 3 listopada 2017 w C i C++ przez program naczelny Gaduła (3,320 p.)
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <time.h>

using namespace std;

char poziom[25];

int main()
{
  for (int i=0;i<=5;i++)
  {
      poziom[i]+=char(120);
  }
  poziom[5]+=char(13);
cout<<poziom;
    return 0;
}

chodzi mi o to, żeby w jednej tablicy char zamiescic 5 linijek tekstu. Muszę do tego uznać enter za znak, i kiedy próbuje go pobrać z kodu ascii, char(13), to pokazuje się  jakiś znak wschodniojęzyczny. Przeglądałem różne fora, ale nikt jasno nie wyjaśnia o co chodzi, i jak to zrobić :/

1 odpowiedź

0 głosów
odpowiedź 3 listopada 2017 przez Bondrusiek Maniak (61,440 p.)
wybrane 3 listopada 2017 przez program naczelny
 
Najlepsza

Witam,

możesz bezpośrednio dodać znak nowej linii '\n' do tablicy char

poziom[5]='\n';

 

komentarz 3 listopada 2017 przez mbabane Szeryf (79,260 p.)
Tak dokładnie i pamiętaj żeby na końcu stringa było '\0' bez tego może rzeczywiście drukować jakieś śmieci.
komentarz 3 listopada 2017 przez program naczelny Gaduła (3,320 p.)
niestety nie działa.
komentarz 3 listopada 2017 przez Bondrusiek Maniak (61,440 p.)
Możesz sprecyzować co nie działa. Nie dodaje Ci nowej linii w konsoli bo u mnie znak '\n' działa prawidłowo.
komentarz 3 listopada 2017 przez program naczelny Gaduła (3,320 p.)
tzn. nie działa w char, ale w stringu już tak. W sumie jak w stringu to zrobię to nie trzeba będzie się z ascii fatygować, tak lepiej ;)
komentarz 3 listopada 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Klasa std::string ma przeładowane operatory, np. +. A tablica charów nie. Jeśli chcesz operować na stringach w stylu C to popatrz w bibliotekę <cstring>. Masz tam różne funkcje do tego.
komentarz 3 listopada 2017 przez mbabane Szeryf (79,260 p.)

może dlatego ze używasz operatora += co oznacza:

poziom[5] = poziom[5] + '\n';

A jeśli jest to zmienna lokalna to tam będą najprawdopodobniej jakieś śmieci.

Podobne pytania

0 głosów
2 odpowiedzi 1,187 wizyt
pytanie zadane 31 marca 2016 w C i C++ przez Corazzo Obywatel (1,040 p.)
0 głosów
1 odpowiedź 4,528 wizyt
pytanie zadane 28 listopada 2015 w C i C++ przez agre Użytkownik (550 p.)
0 głosów
1 odpowiedź 297 wizyt
pytanie zadane 15 maja 2018 w C# przez Konrad Gałach Użytkownik (880 p.)

93,454 zapytań

142,448 odpowiedzi

322,717 komentarzy

62,832 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...