eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikasscanf() - co robię źle?Re: sscanf() - co robię źle?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!nf1.ipartners.pl!ipartners.pl!news2.ipartners.pl!not-for-m
    ail
    From: JDX <j...@o...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: sscanf() - co robię źle?
    Date: Sat, 23 Feb 2013 15:56:40 +0100
    Organization: N/A
    Lines: 40
    Message-ID: <kgalb9$2ej7$1@news2.ipartners.pl>
    References: <kgab3v$bmc$1@portraits.wsisiz.edu.pl>
    NNTP-Posting-Host: ip-94-42-30-156.multimo.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    X-Trace: news2.ipartners.pl 1361631401 80487 94.42.30.156 (23 Feb 2013 14:56:41 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: 23 Feb 2013 14:56:41 GMT
    In-Reply-To: <kgab3v$bmc$1@portraits.wsisiz.edu.pl>
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130215 Thunderbird/17.0.3
    X-Enigmail-Version: 1.5
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:643059
    [ ukryj 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: