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 上,请使用睡眠(毫秒);如果您使用的是 Unix,请使用 sleep(seconds)。不仅要注意不同的单位,还要注意不同的大小写。

于 2012-06-16T02:19:29.457 回答
1
show_bytes((ponter) &x, sizeof(int));

我想那应该是(pointer)吧?

也听从 Akroy 的建议。除非你使用像 CodeBlocks 这样的 IDE。

于 2012-06-16T02:22:33.750 回答
1

首先,show_bytes((ponter) &x, sizeof(int));是对的!

其次,我认为这个问题是输出框在 Windows 控制台上很快消失,如果我是对的,你可以在cmd.

例如,您的程序在d:\project\test.exe

start -> run -> cmd -> 

第1步:将目录更改为您的工作地点,

cmd:\ cd /d d:\project\

第二步:执行

cmd:\test.exe

或者您可以直接使用完整路径执行它:cmd:\d:\project\test.exe.

于 2012-06-16T02:50:35.010 回答