Ostreni vstupu v C – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ostreni vstupu v C – C / C++ – Fórum – Programujte.comOstreni vstupu v C – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
canda220
Duch
12. 11. 2017   #1
-
0
-

Dobry den,

    resim podminku kdy v pripade nacteneho znaku program vypise "Error: Chybny vstup!" a vrati cislo 100. Dale pak musi vstup byt v intervalu (3;69>, pokud ne vypise Error... 

/*Tento zdrojak jsem upravil podle jine diskuze na osetreni vstupu. Je zde ten problem, ze kdyz nacte napriklad -4 a 16, tak nevypise podle dalsi podminky Error: Vstup mimo interval!. Musim zadat dalsi, respektive 3. cislo. */
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {

    int s, v, c;
    char znak;
    char text;
    scanf("%d", &s);
    scanf("%d", &v);

    for (scanf("%s", &text); sscanf(&text, "%g%c%g%c", &s, &v, &znak) != 1; scanf("%s", &text)) {
 fprintf(stderr ,"Error: Chybny vstup!");
    return 100;
    }
    if (s<3 || s>69 || v<3 || v >= 69) {
        fprintf(stderr,"Error: Vstup mimo interval!");
        return 101;
    }

    c = s % 2;
    if (c = 0) {
        fprintf(stderr,"Error: Sirka neni liche cislo!");
        return 102;
    }

    int a = s / 2;   
    int b, k, i;
    while (1) {
        for (i = 0; i<a; ++i)
            printf(" ");
        b = s / 2 - a;
        k = 2 * b - 1;  
        if (b >0)
            printf("x"); 
        for (i = 0; i < k; ++i)
            printf(" ");
        printf("x\n");
        if (a>1)
            --a;
        else break;
    }
    for (i = 0; i < s; ++i)
        printf("x");
    printf("\n");
    v -= 2;
    b = s - 2;
    for (i = 0; i < v; ++i) {
        printf("x");
        for (int j = 0; j < b; ++j)
            printf(" ");
        printf("x\n");
    }
    for (i = 0; i < s; ++i)
        printf("x");
    printf("\n");


    return EXIT_SUCCESS;
}
 

//U tohoto kodu jsem se snazil zjistit jak ten sscanf funguje. Idea byla takova, ze si nactu dva znaky, nebo cisla a funkce sscanf to roztridi. Bohuzel to nefunguje.

#include <stdio.h>

int main() {

int s;
char znak[256];
char text[256];

scanf("%s", text);

sscanf(text,"%d%s", &s , znak);

printf("%d\n",s);
printf("%s\n",znak);


return 0;

}

//Takto jsem to zkousel poprve

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {

    int s, v, c;
    scanf("%d", &s);
    scanf("%d", &v);

    if (s<'a' || s>='x' || v<'a' || v>='x') {
    fprintf(stderr,"Error: Chybny vstup!");
    return 100;
    }

//zbytek kodu

return o;

}

Predem se omlouvam za neprehlednost a dekuji za komentre.

Nahlásit jako SPAM
IP: 194.228.13.–
gna
~ Anonymní uživatel
1891 příspěvků
12. 11. 2017   #2
-
0
-

   

if (scanf("%d %d", &s, &v) != 2) {
    fprintf(stderr ,"Error: Chybny vstup!");
    return 100;
}
Nahlásit jako SPAM
IP: 213.211.51.–
canda220
Duch
12. 11. 2017   #3
-
0
-

#2 gna
Moc dekuji, diky vam jsem stacil ten ukol odevzdat vcas. 

Nahlásit jako SPAM
IP: 194.228.13.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 32 hostů

Podobná vlákna

Kontrola vstupu — založil mickey

Kontrola vstupu — založil Kuba-$

Ošetření vstupu — založil Koja

Nacteni vstupu — založil Alicek

Ošetření vstupu — založil Erlesh

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý