2013-10-22 20 views
0
double d,e,f; 

我有3個變量,我的程序需要在某些lines.I空格字符嘗試一切,但無法找到。如何用c中的double定義打印'space character'?

d='space character' 

這就是我需要的。

如果(...) 在這裏d,e和f計算數量

else{ 
     o="no"; 
     w=""; 
     d= ' ' ; 
     e =' '; 
     f=' '; 
     quest=""; 

     } 


     fprintf(bb,"%-10s%-13s%-13.2lf\t%-13.2lf\t%-13.2lf\t%-3s\n", o, w, d,e,f,quest);  

     printf("%-10s%-13s%-13.2f\t%-13.2f\t%-13.2f\t%-3s\n\n", o, w, d,e,f,quest); 
+1

'32'是空格的ASCII值,它是一個精確的整數值。如果你想要一個字符,然後使用'char'類型,併爲其分配例如''''爲空間。 –

+2

有人可以解釋我的問題O_o。我的意思是應該'd = 32'就夠了嗎? – Sadique

回答

0

聲明dchar

char d; 
... 

if(......) 
    d = ' '; 
+0

@acme;我認爲他的意思是''''寫'空格字符'。 – haccks

+0

但我必須聲明d作爲雙重計算它計算一些數字。另外它需要空間字符而不計算數字我需要他們兩個數字+空格字符 – jarlaxle

+1

@jarlaxle不,你不能。 C語言允許超過3個變量共存於同一個程序中... – Lundin

1

如果d值等於32將打印空間。

double d; 

if (somecondition) 
{ 
    d=32; 
    printf("%c==%d==%f",(char)d,(int) d,d); //cast to char while printing 
} 

你不應該把' '(空間)爲雙。

當過你想要的,商店32到d和使用演員。


根據您的編輯,你可以這樣做

if(...) 
{ 
    //do calculations and print and print statements inside if 
    fprintf(bb,"%-10s%-13s%-13.2lf\t%-13.2lf\t%-13.2lf\t%-3s\n", o, w, d,e,f,quest); 
} 
else 
{ 
    //modify fprintf and printf statements, do not modify values 
    fprintf(bb,"%-10s%-13s%- \t%-13.2lf\t%-13.2lf\t%-3s\n", o, w, e,f,quest); 
         //^^ here use space.do not use this  ^^ argument d 

} 
+0

爲什麼有人想要這樣做?如果你試圖打印的字符不能表示爲特定浮點格式的確切數字?你會打印一個不同的角色。 – Lundin

+0

@Lundin你是對的。這裏OP想要用double值d打印'空格字符'。我相信OP只想打印空格字符,一些雙重值和其他字符。 – Gangadhar

+0

@Gangadhar我的if塊結束後,我的printf fonc。開始。因爲程序從文本文件中讀取了一些行,並在計算出某些東西后打印。 – jarlaxle

0

在C語言中,所有的字符存在爲小整數(通常爲1個字節大)。將字符存儲在用於浮點計算的變量中是沒有任何意義的。

相反,建立在所期望的格式的輸出格式字符串。最明顯的是

printf("%f %f %f", d, e, f); 
萬一

或替代,sprintf您需要其他目的,而不是打印在屏幕上的字符串。

編輯:如果空間的輸出應該依靠雙打的值,那麼你應該這樣做:

signed char ascii_value = ' '; 

if (fabs(my_double - (double)ascii_value) <= epsilon * fabs(my_double)) 
{ 
    print(ascii_value); 
} 

如果你完全不知道上述手段或爲什麼我做了它,你可能不應該浮動任何點編程,而不是在reading this之前。