eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikasscanf() - co robię źle? › Re: sscanf() - co robię źle?
  • Data: 2013-02-23 15:56:40
    Temat: Re: sscanf() - co robię źle?
    Od: JDX <j...@o...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 2013-02-23 13:02, Atlantis wrote:
    [...]
    > sscanf(tablica, "+CPAS: %d\r", &zmienna_int);
    >
    > następnie funkcja zwraca wartość zapisaną w zmiennej.
    >
    > Robię coś nie tak? A może %d nie przyjmie liczby poprzedzonej zerami? Z
    > drugiej strony próbowałem także zapisu "+CPAS: 00%d\r" i także nic nie
    > dało...
    To w końcu funkcja zwraca to co chcesz czy nie? Dawno już nie zaglądałem
    do wnętrzności stdio, ale jakaś taka dziwna myśl chodzi mi po głowie że
    funkcje z rodziny scanf "pod spodem" korzystają z dynamicznej alokacji
    pamięci i w związku z tym musisz dostarczyć taki alokator. Jeśli tego
    nie zrobisz to jest używany jakiś "place holder".

    W każdym razie poniższy programik skompilowany gcc 4.7.2 pod WinXP/MinGW
    działa zgodnie z oczekiwaniami.

    /******************* Utnij tutaj *******************/
    /* Kompilacja: gcc -O3 -s -o ssctest ssctest.c */

    #include <stdio.h>

    const char *tablica1 = "+CPAS: 002\r\0";
    const char *tablica2 = "+CSQ: 123, 010\r\0";

    int main ( int argc, char *argv[] )
    {
    int i, j, k;

    sscanf (tablica1, "+CPAS: %d\r", &i);
    printf ("Odczytana licba: %d\n", i);

    sscanf (tablica2, "+CSQ: %d, %d\r", &j, &k);
    printf ("Odczytane licby: %d, %d\n", j, k);

    return 0;
    }
    /******************* Utnij tutaj *******************/

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: