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

Pomoc w zrozumieniu kodu.

Object Storage Arubacloud
0 głosów
161 wizyt
pytanie zadane 3 listopada 2015 w C i C++ przez GameFreak Początkujący (450 p.)

Witam

Prosiłbym o pomoc w zrozumieniu kodu, ponieważ jestem kompletenie zielony co jak i gdzie.... Dodam, że jestem początkującym.

Z góry dzięki za pomoc.

#include <cstdio>
#include <windows.h>
#include <clocale>
#include <string>
#include <iostream>

//********* Forward declarations **********
void SetCP1250();

//********* Routines **********
void PrintString(char aString[])
{
    printf("%s\n", aString);
}

//************************ Funkcja GetString ***********************
//Przeznaczenie: Wyświetla użytkownikowi zaproszenie i pobiera jego odpowiedź
//Parametry:
// aOutputStr - adres bufora, do którego funkcja wpisuje odpowiedź użytkownika
// aMaxStrLen - maksymalna długość odpowiedzi użytkownika (bez zera kończącego)
//              jest równy wielkości bufora - 1
// aMsgStr - tekst zaproszenia wyświetlanego użytkownikowi,
//           jeżeli w wywołaniu nie podano wartości tego parametru,
//           funkcja wyświetla zaproszenie standardowe "Wpisz łańcuch: "
//Wartość zwracana: brak
void GetString(char aOutputStr[], unsigned int aMaxStrLen, const char aMsgStr[] = NULL)
{
    if(aMsgStr == NULL)
        printf("Wpisz łańcuch: ");
    else
        printf("%s", aMsgStr);

    fgets(aOutputStr, aMaxStrLen+1, stdin);
}

//********* Main program **********
int main()
{
    char myString[256];

    SetCP1250();

    //Pierwszy sposób korzystania z funkcji GetString
    // - wykorzystywana jest domyślna wartość parametru aMsgStr
    GetString(myString, 255);
    PrintString(myString);

    //Drugi sposób korzystania z funkcji GetString
    // - wykorzystywana jest wartość parametru aMsgStr podana w miejscu wywołania funkcji
    GetString(myString, 255, "Wpisz cokolwiek: ");
    PrintString(myString);

    printf("Długość łańcucha \"%s\" wynosi %d\n", myString, strlen(myString));

    return 0;
}


void SetCP1250()
{
    SetConsoleCP(1250);
    SetConsoleOutputCP(1250);
    setlocale(LC_ALL, "1250");
}

 

3 odpowiedzi

0 głosów
odpowiedź 3 listopada 2015 przez Rogargol Pasjonat (16,600 p.)
Ale co konkretnie chcesz wiedziec?
komentarz 3 listopada 2015 przez GameFreak Początkujący (450 p.)
Chodzi mi o w     fgets(aOutputStr, aMaxStrLen+1, stdin); co to stdin ?

i         void GetString(char aOutputStr[], unsigned int aMaxStrLen, const char aMsgStr[] = NULL)   co to const char aMsgStr[]???
komentarz 3 listopada 2015 przez Rogargol Pasjonat (16,600 p.)
stdin wystarczy jakbys sobie w google wrzucil, pierwszy wynik: http://cpp0x.pl/dokumentacja/standard-C/stdin/590 jest to po prostu jakis strumien wejscia

a aMsgStr to bedzie jakis string przechowujacy wiadomosc, funkcja zapewne wyswietla jakas wiadomosc (np pytanie do uzytkownika), a pozniej pobiera od uzytkownika ciag znakow. Jesli nie wyslesz do tej funkcji wiadomosci do wyswietlenia, to standardowo wypisze "Wpisz lancuch: "

Wszystko jasne?
0 głosów
odpowiedź 3 listopada 2015 przez asfreestyle Obywatel (1,310 p.)
Czego konkretnie nie rozumiesz? W programie masz 3 funkcje i funkcje główną (main), w tej funkcji implementujesz swój łańcuch znaków czyli, char mySrting[256] albo raczej tablice znaków i rezerwujesz miejsce (256), i później wywołujesz funkcje przesyłając im swoje parametry (wartości w nawiasach) np. GetString(myString, 255); każda funkcja robi coś innego, informuje nas o tym co robi np nazwa GetString - pobiera łańcuch znaków,  PrintString wypisuje łańcuch znaków.
0 głosów
odpowiedź 3 listopada 2015 przez criss Mędrzec (172,590 p.)
Nie bardzo jest tu co rozumieć/nie rozumieć. SetCP1250 zmienia kodowanie znaków w konsoli. A przynajmniej powinno... Różne historie słyszałem. Cała reszta jest i tak opisana w tym, co wkleiłeś. Ew. bardziej sprecyzuj.

Podobne pytania

0 głosów
1 odpowiedź 266 wizyt
pytanie zadane 15 grudnia 2022 w Python przez dedek2 Początkujący (370 p.)
0 głosów
1 odpowiedź 117 wizyt
pytanie zadane 23 sierpnia 2021 w C# przez steeldre Nowicjusz (120 p.)
0 głosów
1 odpowiedź 235 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...