0

私はCが初めてで、データのバイト表現を表示する簡単なプログラムを書いています。コンパイルすると、コマンド プロンプト画面が 1/2 秒間点滅して消えます。簡単に言えば、出力は表示されません。以下は私のコードです:

#include <stdio.h>
typdef unsigned char* pointer;

void show_int(int);
void show_bytes(pointer, int);
int main()
{
show_int(100);
}

void show_int(int x)
{
show_bytes((ponter) &x, sizeof(int));
}

void show_bytes(pointer start, int len)
{ 
  int i;
  for(i=0;i<len;i++)
  {
    printf("0x%p\t0x%.2x\n", start + i, start[i]);
  }
}
4

3 に答える 3

3

プログラムはおそらく出力を表示し、すぐに終了します。終了する前に遅延する必要があります。Windows を使用している場合は、Sleep(milliseconds); を使用します。Unix を使用している場合は、sleep(seconds) を使用してください。単位の違いだけでなく、大文字と小文字の違いにも注意してください。

于 2012-06-16T02:19:29.457 に答える
1

まず、そうshow_bytes((ponter) &x, sizeof(int));です!

二次的に、この質問は、出力ボックスがWindowsコンソールですぐに消えることだと思います。私が正しければ、でプログラムを実行できますcmd

たとえば、あなたのプログラムはd:\project\test.exe

start -> run -> cmd -> 

ステップ1:dirを職場に変更します。

cmd:\ cd /d d:\project\

ステップ2:それを実行する

cmd:\test.exe

または、フルパスで直接実行することもできますcmd:\d:\project\test.exe

于 2012-06-16T02:50:35.010 に答える
1
show_bytes((ponter) &x, sizeof(int));

(pointer)代わりになると思いますか?

Akroy のアドバイスにも従ってください。CodeBlocks などの IDE を使用している場合を除きます。

于 2012-06-16T02:22:33.750 に答える