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

Program po wczytaniu łańcucha znaków nie czeka na wciśnięcie klawisza

VPS Starter Arubacloud
0 głosów
653 wizyt
pytanie zadane 22 września 2016 w C i C++ przez Sidzej Użytkownik (850 p.)

Mam problem z poniższym programem.

#include "stdafx.h"
#include <iostream>
#include <string>



using namespace std;


int main()
{
	int i;
	char ch;
	string str;

	while (cin.get(ch) && ch != '@')
		str.push_back(ch);

	cout << endl << str;


	cin.ignore();
	cin.get();
	return 0;
}

Program ma za zadanie wczytywanie ciągu znaków aż do znaku "@" a następnie wyświetlenie tego co wczytal. Niby działa poprawnie, ale problem pojawia się kiedy po wpisaniu "@" wpisze jeszcze inne znaki i dopiero zatwierdzę enterem. Wtedy wykonuje to co ma do wykonania i od razu się wyłącza bez czekania na znak. Próbowałem z cin.sync(), cin.clear(), wstawiać to do pętli itd, ale nic nie działa. Proszę o pomoc.

komentarz 22 września 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tez czekam na ta ksiazke :D, ale jakos nie lubie zadan z ksiazek i wole postawic na kreatywnosc... Teraz pisze sobie male czesci do kalkulatora z matematyki, gdzie da sie obliczyc pola figury, twierdzenie sinusow i cosinusow... wszystko co sie tylko uda mi dodac + fizyka... A w miedzy czasie jeszcze powstaje mala gra... Dzisiaj mialem ksiazke o C++ od samego tworcy jezyka, ale nie stety po niemiecku... CHociaz tam to juz wyzszy poziom. Wszystko zaczyna sie od wlasnych funkcji
komentarz 22 września 2016 przez Sidzej Użytkownik (850 p.)
No to jeszcze nie mój poziom ;] A książka sama w sobie całkiem fajna, dobrze się czyta.
komentarz 23 września 2016 przez DragonCoder Nałogowiec (36,500 p.)
Czy nie twoj poziom to nie tak do konca, bo to iczy jednak juz od poczatku uzywania wlasnych funkcji a to raczej dobre ptzyzwyczajenie
komentarz 25 stycznia 2017 przez bartolinciu Dyskutant (7,580 p.)
Stringa można zapisać jako tablicę. Metoda std::string.c_str() zwraca adres bezpośrednio na tablicę charów "zawartą" w zmiennej string.
komentarz 25 stycznia 2017 przez bartolinciu Dyskutant (7,580 p.)
Bez własnych funkcji w programowaniu daleko nie zajedziesz :)

1 odpowiedź

+1 głos
odpowiedź 25 stycznia 2017 przez bartolinciu Dyskutant (7,580 p.)
Zamiast całej tej pętli użyj funkcji getline i po kłopocie:)

Podobne pytania

0 głosów
2 odpowiedzi 441 wizyt
0 głosów
1 odpowiedź 1,879 wizyt
pytanie zadane 3 grudnia 2015 w C i C++ przez Kaydan Początkujący (260 p.)
0 głosów
1 odpowiedź 510 wizyt
pytanie zadane 12 czerwca 2018 w C i C++ przez Agnes Użytkownik (990 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...