Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C]problemi con formattazione stringa

    salve a tutti , ho qualche problemino con le stringhe ... l'obiettivo del programma è :

    - Chiede all'utente di digitare una riga contenente due numeri.
    - Legge da tastiera la riga e la memorizza in una stringa.


    codice:
    #include <stdio.h>
    
    
    int main(void)
    {
    
    	char c[20];
    	
    	int a,b;
    	printf("Inserisci numeri su una riga:");
    	scanf("%s",c);
    	printf("OK, ho letto la stringa!\n");
    	sscanf(c, "%d %d",&a,&b);
    	printf("A : %d\n", a);
    	printf("B : %d\n", b); 
    
    
    
    	return ;
    
    
    }
    codice:
    Inserisci numeri su una riga:56 78
    OK, ho letto la stringa!
    A : 56
    B : 9057060
    Come risolvo questo problema ? Penso sia la lettura "sporca" da input o dall'array ...

  2. #2
    La funzione scanf acquisisce sino al primo spazio che incontra.
    Utilizza:
    codice:
    fgets(c, 20, stdin);

  3. #3
    Puoi usare una sprintf..
    Forse ho detto una cavolata e mi sono confuso..

  4. #4
    Originariamente inviato da google01
    La funzione scanf acquisisce sino al primo spazio che incontra.
    Utilizza:
    codice:
    fgets(c, 20, stdin);
    codice:
    	char c[20]
    	
    	int a,b;
    	printf("Inserisci numeri su una riga:");
    	//scanf("%s",c);
    	fgets(c,20,stdin);
    	printf("OK, ho letto la stringa!\n");
    	sscanf(c, "%d %d",&a,&b);
    	printf("A : %d\n", a);
    	printf("B : %d\n", b); 
    
    
    
    	return ;
    Ok, grazie, così funziona...
    Ragazzi scusatemi sono un pò arrugginito ma le caratteristiche delle funzioni stdio.h dove posso leggerle? Nel senso tipo il fatto che scanf si ferma al primo spazio bianco che incontra.... Linkatemi o indirizzatemi... (solo e esclusivamente man) ??

    Grazie

  5. #5
    In effettti ha ragione google01:
    codice:
    #include <stdio.h>
    
    int main(void)
    {
    	char c[20];	
    	int a,b;
    	printf("Inserisci numeri su una riga:");
      fgets(c, 20, stdin);
    	printf("OK, ho letto la stringa!\n");
    	sscanf(c, "%d %d",&a,&b);
    	printf("A : %d\n", a);
    	printf("B : %d\n", b); 
    
    	return 0;
    
    }
    Output
    codice:
    Inserisci numeri su una riga:90 98
    OK, ho letto la stringa!
    A : 90
    B : 98

  6. #6
    Vero...


    Scusatemi dove posso leggere le catteristiche delle funzioni stdio.h e string.h? Nel senso tipo il fatto che scanf si ferma al primo spazio bianco che incontra.... Linkatemi o indirizzatemi... (solo e esclusivamente man) ??

  7. #7
    Guarda, il meglio che puoi fare è cercare il pacchetto glibc e le trovi qui:
    http://www.icewalkers.com/download/glibc/1282/dls/
    Non guardare i files headers, cerca quelli con l'estensione .c che alla fine sono quelli che compilati tramite ./configure e make costituiscono le librerie condivise, ossia con le implemtazioni di fgets, printf, scanf, fork etc....
    Scegli il Direct Download, il file è glibc-2.11.2.tar.gz e all'interno trovi sia headers che implementazioni ovviamente.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.