NepřihlášenKSP fórum
Fórum Hlavní stránka Nápověda Hledat Přihlásit
Nahoru Téma KSP / CodEx / 28-2-3 (C++) Vstup a vystup pre CodEx
- - Od vladott16 Dne 08. 11. 2015 12:43
Dobry den,
svoju ulohu pre CodEx som naprogramoval v C++, ale za riesenie mam stale 0 bodov. Mysim si, ze moj algoritmus funguje spravne a ze problem je vo vstupe a vo vystupe. Prosim Vas poradite mi ako ma moj program nacitavat vstupy a odovzdavat vystupy?

Moj program nacitava vstupy tymto sposobom: (prostrednictvom   cin>>)

#include <iostream>
#include <string>
using namespace std;
int main(){
    int pocet_znakov_v_texte;          
    cin >> pocet_znakov_v_texte;
    string text;                                   
    cin >> text;
    int pocet_hladanych_znakov;    
    cin >> pocethladanychznakov;
    string hladane;                            
    cin >> hladane;


Vystupy zobrazujem pomocou prikazu:     cout<< … ;

Prosim Vas poradite mi ako mam nacitat vstupy a ako zobrazit vystupy ? Robim to spravnym sposobom, alebo mam pouzit iny prikaz?
Nadřazený - - Od Vojtěch Sejkora (Org) Dne 08. 11. 2015 21:22
Omlouvám se, že nejsem úplný C++skář.

Ale co jsem googlil, tak jsem našel toto:
http://www.cplusplus.com/reference/istream/istream/getline/

čímž načteš celou řádku. A varoval bych tě, že načítání vstupů přes stream je velmi pomalé a na soutěžích díky tomu nemusíš stihnout časový limit (u této úlohy to nepředpokládám, ale i to by se teoreticky mohlo stát). Přitom v C++ můžeš načítat vstup úplně stejně jako v Cčku. A na to máme v encyklopedii návod https://ksp.mff.cuni.cz/encyklopedie/parsovani-vstupu-c.html a https://ksp.mff.cuni.cz/encyklopedie/parsovani-vstupu-c-pokrocile.html

Pro tuto úlohu jeden ze způsobů jak vše načíst by bylo.

#include <stdio.h>

int main(){
    int pocet_znakov_v_texte;
    scanf("%d",&pocet_znakov_v_texte);
    char text[MAX_TEXT+1]; // +1 kvůli ukončujícímu znaku
    scanf("%s",&text[0]); //nacte od 0. znaku řetězec
    int pocet_hladanych_znakov;    
    scanf("%d",&pocethladanychznakov);
    char hladane[MAX_HLEDANE+1];                            
    scanf("%s",&hladane[0]);

Doufám, že ti toto pomůže. A snad ti někdo odpoví, jak to udělat správně i přes streamy :-).

Vojta
Nadřazený - Od vladott16 Dne 09. 11. 2015 17:47
Dakujem za odpoved, upravil som sposob zadavania vstupov podla odporucania.
Nahoru Téma KSP / CodEx / 28-2-3 (C++) Vstup a vystup pre CodEx

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill