web-dev-qa-db-ja.com

Cの変数をprintf

#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);
}

変数を自分自身に追加してからその変数を出力しようとしていますが、コードを機能させることができません。

私の出力エラーは

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]
8
Dave

printfにはフォーマット文字列が必要です:

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

この リファレンスページ は、printfおよび関連する関数の使用方法の詳細を提供します。

23
Shafik Yaghmour

Shafikがすでに書いたように、scanfは文字を取得するため、正しい形式を使用する必要があります。 uの使用法がわからない場合は、ここを参照してください: http://www.cplusplus.com/reference/cstdio/printf/

ヒント:x=x+1;短い方法:x++;

答えられたことに答えて申し訳ありませんが、彼にリンクを渡したかっただけです-Cを扱っている間、このサイトは本当に役に立ちました。

2
Ms. Nobody