質問

るためのループ行うことにより利用printf印刷、電流iの値です。このライン: printf((char *) i); が与えてくれたように、実行時エラー.なぜ日間のスケジュールはこの通り。

以下には、迅速fizzbuzzソリューションを行うこと:

void FizzBuzz()
{
    for (int i = 0; i < 20; i++)
    {
        printf((char *)i);
        if ((i % 3 == 0) && (i % 5 == 0))
        {
            printf("FizzBuzz \n");
        }
        else if (i % 3 == 0)
        {
            printf("Fizz \n");
        }
        else if (i % 5 == 0)
        {
            printf("Buzz \n");
        }
        else 
        {
            printf("%d\n", i);
        }
    }
}
役に立ちましたか?

解決

それはどのようにprintf作品ではありませんので。あなたが代わりにこれが欲しいます:

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

あるいは、より良い、

std::cout << i;

他のヒント

あなたがC ++を使用している場合は、

、あなたの代わりにprintfのではcout使用する必要があります:

#include <iostream>
using namespace std;

int main() {
        int i = 42;
        cout << "The answer is: " << i << endl;
}
あなたが言っているものを、その文により、

は次のとおりです。確かにそれはあなたが意図したものではありません「の場所から始まるが刺されている私は、それが表示されます」。使用形式文字列%dは整数

を印刷します

はprintfの作品はこのような文字列をこの:

printf( "the number is: " );

ましい整数の最後部に文字列を使用する必要がありエスケープ文字としてのintとして他のパラメータ:

printf( "the number is %d", i );

詳しい情報 こちらの のエスケープ文字は使用できる。

も必要となります。

#include <stdio.h>

編集

い私の専門用語間違っているのは、%の後、シーケンスと呼ばれる 変換仕様 ないエスケープcharacer.

HTH.

printf()の最初の引数はCスタイルのヌルで終了する文字列です。残りの引数を印刷する%フォーマット配列とフォーマット(従って「F」)として使用されることを意図しています。

printf((char *) i);を使用することで、

あなたはiポイントにあること、それがヌルに遭遇するまで、アドレスで始まるすべてのバイトを印刷するには、コンピュータに指示されています。残念ながら、iは通常のカウンターのために使用されていることを考えると、それはおそらく非常に低いメモリを指します。最近のほとんどのオペレーティングシステムは、セキュリティホールを作成するからバグを防ぐために、ユーザ空間のプログラムから、このようなメモリへのアクセスを禁止する、と怒らプログラムに信号を送信します。そのような信号にデフォルトの応答は、あなたがトラップそれをしない限り、プロセスを殺すことです。

代わりiに格納された番号、使用printf("%d\n", i);を表示する

。文字としてiの値を表示するには、putc((char)i);またはprintf("%c\n", i);を試してみてください。 iが本当に文字へのポインタである場合は、putc((char)(*i));を試してみます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top