Wyświetlanie wszystkich znaków pobranej wcześniej linii tekstu

0

Cześć, mam problem z napisaniem takiego programu który wyświetla osobno wszystkie znaki pobranej wcześniej linii tekstu.
Gdy wpisuję jakieś zdanie to pierwsza litera ląduje na końcu, zamiast "A l a m a k o t a" dostaję " l a m a k o t a a". zacząłem co dopiero naukę c i c++ na studiach 2 miesiące temu i jestem na etapie instrukcji warunkowych, pętli i funkcji.
Z góry dziękuję za pomoc.

#include<iostream>
using namespace std;

int main()
{
char napis[100];
cout << "Wpisz tekst : ";
		cin >> napis[100];
		cin.getline(napis, 100);

		for (int i = 0; napis[i] != 0 ; i++)
		{
				cout << napis[i] << endl;
			
		}
	system("pause");
	return 0;
}
4
cin >> napis[100];
cin.getline(napis, 100);

w pierwszej linii wczytujesz jeden znak do 101. elementu tablicy napis (co jednocześnie jest UB, bo to dostęp poza zakresem), w drugiej wczytujesz dalej.

1

Użyj klasy string do wczytywanie tekstu.

#include <iostream>
#include <string>
using namespace std;
 
int main() {
	string text = "Grzesiek";
	for(int i = 0; i < text.length(); i++)
	{
		cout << text[i] << " ";
	}
	return 0;
}

https://ideone.com/jIiBFU

0

Bardzo dziękuję za pomoc i expresową odp. :) Życzę miłego wieczoru.

1 użytkowników online, w tym zalogowanych: 0, gości: 1