Wpis z mikrobloga

#naukaprogramowania #programowanie #cpp

Jak w c++ można zrobić wczytywanie do zmiennej przez określony czas.
Na przykład cin (lub jakaś inna funkcja) czeka 20 sekund i jeśli użytkownik nic nie wpisze program leci dalej.
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@AferaZaAfera:
1. No ja miałem właśnie wrzucić a ty byłeś pierwszy o sekundy to dopisałem że nie działa...


2. No tak jak std::cin ( ͡º ͜ʖ͡º)
3. Ja bym dodał czyszczenie buforu jak był timeout, a zaczyna się zbierać nowe dane. Tracisz dane po timeoucie ale skoro był timeout to
  • Odpowiedz
@lionbest
Mam jeszcze jedno pytanie. Sprawdziłem sposobem @AferaZaAfera i w całkowicie czystym projekcie działa poprawnie.
Gdy wkleiłem do mojego wywala błąd przy kompilacji "left of '.wait_for' must have class/struct/union", "left of '.get' must have class/struct/union",
  • Odpowiedz
@lionbest: ale Ty masz problemy... nie mogłeś zwrócić tego std::future np. w std::pair albo std::tuple i niech sobie użytkownik je gdzieś trzyma (+ może je przenosić z std::move)? Statyczne trzymanie danych jeśli nie trzeba to lipa... A co jak wywołasz kilka razy? Pierwsze wczytanie i tak będzie się musiało zakończyć a wtedy i tak stracisz jakieś informacje z wejścia. Dlatego dużo lepiej zrobić bufor i co najwyżej jeden std::cin
  • Odpowiedz