2013-05-21 16 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); 
} 

Próbuję utworzyć zmienną dodaj do siebie, a następnie wypisz tę zmienną, ale nie mogę sprawić, że mój kod zadziała.printf zmienna w C

mój błąd wyjście jest

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, nie są drukowane zmienną, jesteś drukowanie [current] * value * jakiejś zmiennej. –

+0

Ponadto, lepiej jest zainicjować 'input' przed' scanf' i przetestować wynik 'scanf' –

Odpowiedz

16

Twój printf potrzebuje ciąg formatu:

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

Ten reference page zawiera szczegółowe informacje na temat korzystania printf i podobnych funkcji.

+0

To wszystko, co muszę zrobić?!?!?! Dzięki, że zadziałało. – Dave

2

Jak już napisał Shafik, musisz użyć właściwego formatu, ponieważ scanf dostaniesz znak. Nie wahaj się sprawdzić tutaj, jeśli nie masz pewności co do sposobu użycia: http://www.cplusplus.com/reference/cstdio/printf/

Podpowiedź: Szybsze/ładniejsze jest pisanie x=x+1; krótsza droga: x++;

Przepraszam za odpowiedzi co odpowiedział po prostu chciał dać mu link - miejsce było bardzo przydatne do mnie cały czas do czynienia z C