• 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.

Object Storage Arubacloud
0 głosów
2,323 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,370 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,280 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,370 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,280 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,033 wizyt
pytanie zadane 31 marca 2016 w C i C++ przez Corazzo Obywatel (1,040 p.)
0 głosów
1 odpowiedź 4,161 wizyt
pytanie zadane 28 listopada 2015 w C i C++ przez agre Użytkownik (550 p.)
0 głosów
1 odpowiedź 226 wizyt
pytanie zadane 15 maja 2018 w C# przez Konrad Gałach Użytkownik (880 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...