2012-06-16 26 views
0

我是C新手,編寫一個簡單的程序來顯示數據的字節表示。當我編譯時,命令提示符屏幕閃爍1/2秒並消失。用簡單的話來說,輸出不會顯示出來。以下是我的代碼:C輸出不顯示(新手到C)

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

如果您在Windows上:http://stackoverflow.com/questions/2529617/how-to-stop-c-console-application-from-exiting-immediately – Mysticial

+0

這也有幫助。如果我沒有錯,廣告你就是那個人。 – jmishra

+0

是的,你是對的。 :) – Mysticial

回答

3

該程序可能會顯示您的輸出,然後快速退出。退出前您需要延遲。如果你在Windows上,使用Sleep(毫秒);如果你在Unix上,使用睡眠(秒)。不僅要注意不同的單位,還要注意不同的大寫字母。

+0

謝謝!我必須'#include '使'睡眠(..)'工作,這似乎很愚蠢(我會小心地稱它爲因爲我是C新手),因爲我正在Windows機器上工作 – jmishra

+1

Since您使用C運行時進行輸入/輸出,您可以在main的末尾添加對getchar()的調用,以防止程序在看到輸出之前結束。按Enter/Return結束。 –

1
show_bytes((ponter) &x, sizeof(int)); 

我想應該是(pointer)而不是?

也按照Akroy的建議。除非你使用像CodeBlocks這樣的IDE。

1

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

次要的,我想這個問題是輸出框在Windows控制檯上快速消失,如果我是對的,你可以運行你的程序cmd

例如,你的程序是d:\project\test.exe

start -> run -> cmd -> 

第1步:改變目錄到你的工作場所,

cmd:\ cd /d d:\project\ 

第2步:執行它

cmd:\test.exe 

,或者你可以直接使用完整路徑執行它:cmd:\d:\project\test.exe