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

Я пытаюсь сделать переменную добавлением к себе, а затем распечатать эту переменную, но я не могу заставить мой код работать.printf переменная в C

мой выход ошибка

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

Кстати, вы не печатаете переменную, вы печать значения [current] * * некоторой переменной. –

+0

Кроме того, лучше инициализировать 'input' перед' scanf' и проверить результат 'scanf' –

ответ

16

Ваш printf нужен формат строки:

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

Это reference page дает подробную информацию о том, как использовать printf и связанные с ними функции.

+0

Вот и все, что мне нужно было сделать!!?!?! Спасибо, что сработало. – Dave

2

Как уже писал Шафик, вам нужно использовать нужный формат, потому что scanf доставит вам символ. Не стесняйтесь смотреть здесь, если вы не уверены в использовании: http://www.cplusplus.com/reference/cstdio/printf/

Подсказка: Быстрее/приятнее писать x=x+1; тем короче путь: x++;

К сожалению для ответа на то, что ответил просто хотел дать ему ссылку - сайт был действительно полезным для меня все время работы с С.

Смежные вопросы