2013-05-21 20 views
5
#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
    int x = 1; 

    printf("please make a selection with your keyboard\n"); 
    sleep(1); 
    printf("1.\n"); 

    char input; 
    scanf ("%c", &input); 
    switch (input) { 
     case '1': 
      x=x+1; 
      printf(x); 
    } 

    return(0); 
} 

Sto provando a fare una variabile aggiungere a se stessa e quindi stampare quella variabile ma non riesco a far funzionare il mio codice.printf a variabile in C

il mio errore di uscita è

newcode1.c: In function ‘main’: 
newcode1.c:20:2: warning: passing argument 1 of ‘printf’ makes pointer from integer without a cast [enabled by default] 
In file included from newcode1.c:1:0: 
/usr/include/stdio.h:362:12: note: expected ‘const char * __restrict__’ but argument is of type ‘int’ 
newcode1.c:20:2: warning: format not a string literal and no format arguments [-Wformat-security] 
+0

BTW, non si stampa una variabile, si è stampando il valore [corrente] * di alcune variabili. –

+0

Inoltre, è meglio inizializzare 'input' prima di' scanf' e testare il risultato di 'scanf' –

risposta

16

tuo printf ha bisogno di una stringa di formato:

printf("%d\n", x); 

Questo reference page dà dettagli su come utilizzare printf e le relative funzioni.

+0

Questo è tutto ciò che dovevo fare?!?!?! Grazie ha funzionato. – Dave

2

Come già scritto da Shafik, è necessario utilizzare il formato corretto perché scanf ottiene un carattere. Non esitare a guardare qui se non sei sicuro dell'uso: http://www.cplusplus.com/reference/cstdio/printf/

Suggerimento: è più veloce/bello scrivere x=x+1; la via più breve: x++;

Ci scusiamo per rispondere a quello che ha risposto semplicemente voleva dargli il link - il sito è stato davvero utile per me tutto il tempo si occupano di C.