0
A
回答
3
這是真正的數字格式:
writeln(foo:N:M);
打印的foo
值在N
場寬度和顯示M
小數。因此,在C
你會使用:
printf("%N.Mf\n", foo);
如果N
是是太小,無法容納格式化值(給出的M
大小),它會用它需要打印數量的空間。
在Pascal中,您可能有N
和/或M
爲變量。在這種情況下,在C
,你可以創建如下格式的字符串:
char my_fmt[50]; // could pick a "smarter" length for the string; this is just for example
sprintf(my_fmt, "%%%d.%df\n", N, M);
printf(my_fmt, foo);
或者更簡單:
printf("%*.*f\n", N, M, foo);
0
它將打印改編右對齊到的最小的總寬度[I] 0,十進制分隔符後的精度爲14位(舊的skool pascal情況下的一個點)。
請注意,總寬度爲0基本上會禁用對齊,但它必須能夠指定小數點分隔符精度。
雙格式化參數意味着ARR [I]必須是一個浮子式。 (或定點貨幣類型,在Delphi中)
將數組下標從Pascal轉換爲C時要小心.Pascal數組可能有一個非零下限,然後您必須相應地轉換數組。
var xx : array [m..n] of double
變得
double xx[n-m+1];
與通過減去米糾正了所有陣列索引。像
arr[x-m])
相關問題
- 1. #arr [*]在bash中的含義是什麼?
- 2. 從帕斯卡
- 3. 這是什麼帕斯卡方言?它有什麼作用?
- 4. 帕斯卡**定義(指數)
- 5. S_IRUSR中'I'的含義是什麼
- 6. [[$ - = * i *]]在bash中的含義是什麼?
- 7. 在卡斯帕
- 8. 帕斯卡到C:TRUNC
- 9. 帕斯卡爾:random()之間的區別是什麼?並隨機;
- 10. ILNumerics Library中「(!0)」的含義是什麼?
- 11. Java中char(0)的含義是什麼?
- 12. 「malloc_trim(0)」的真正含義是什麼?
- 13. 宏container_of中0的含義是什麼?
- 14. Objective-C編程中「id <I> i」的含義是什麼?
- 15. 由帕斯卡爾
- 16. 帕斯卡重複標識
- 17. 帕斯卡三角SML
- 18. 什麼是const TAB =^I pascal?
- 19. 帕斯卡漢譯
- 20. 帕斯卡三角
- 21. 什麼是返回void 0 === i &&(i = 3),0 ===我? (..A ..):(..B ..)呢?
- 22. 什麼是更準確的平均方法,ARR [0]/N + ARR [1]/N ... + ARR [N-1]/N或(ARR [0] + ARR [1] ... + ARR [N-1])/ N爲雙倍?
- 23. 帕斯卡,生成數字
- 24. 使用在帕斯卡
- 25. 傳遞參數在帕斯卡定義
- 26. 定義最大帕斯卡爾
- 27. 帕斯卡範圍溢出
- 28. 帕斯卡到C#轉換
- 29. r? 。的含義,斯卡拉
- 30. 算法smbPitchShift(帕斯卡爾)
在帕斯卡,n和m可能是變量。因此,儘管示例中的簡單情況可能相同,但可能需要構造格式化字符串。 –
你不需要'的sprintf()'來生成格式字符串( 「%* * F \ N」,N,M,富)'printf的;'是如此簡單得多,你不覺得嗎? –
@ElchononEdelson是的,這是簡單的,我有,在我的腦海裏。自從我需要或使用它已經很長時間了,我不確定它。我已經將它添加到完整性的答案中。 – lurker