會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





XC32 V1.32 swprintf() 問題
高級會員
註冊日期:
2011/05/27 09:38
所屬群組:
註冊會員
文章: 82
等級: 8; EXP: 0
HP : 0 / 175
MP : 27 / 3113
離線
char cTemp[100];
flot A;

A = 12.3;
swprintf(cTemp,sizeof(cTemp),"Phase=%5.1f°",A);

請問以上程式使用 swprintf function.
本來以為cTemp 內容為 Phase=12.3°
結果 cTemp 內容為 Phase=%5.1f°
請問 swprintf 是否有問題?


從 Help 裡查到的說明如下:
int swprintf(wchar_t *restrict s, size_t n,
const wchar_t *restrict format, ...);

使用 MPLAB X IDE V2.5 + XC32 V1.32

2016/10/27 10:20
轉換PDF檔 列印


Re: XC32 V1.32 swprintf() 問題
資深會員
註冊日期:
2009/04/07 13:30
所屬群組:
註冊會員
文章: 151
等級: 11; EXP: 34
HP : 0 / 258
MP : 50 / 6209
離線
其實呢! 我也不知道 swprintf 有沒有問題!?

因為看到了沒看過的 swprintf 的名稱所以看了以上問題的內容.

------------------------------------------------------------
如果只是想得到 cTemp 內容為 Phase=12.3°,

使用 sprintf(cTemp,"Phase=%5.1f°",A); 應該可以達到目的.


若還是想使用 swprintf(cTemp,sizeof(cTemp),"Phase=%5.1f°",A);

(例如程式是由其它已有的來源時.)

或許可以考慮加上重新定義的敘述, 將 swprintf 轉向 sprintf,

我有使用以下的部分試了一下...


#include "./xc.h"
#include "./stdio.h"
#include "./wchar.h"

char cTemp[100];
float A;

#define swprintf(stream,size_s,fmt,a...) __builtin_sprintf(stream,fmt,##a)

void main(void)
{

A = 12.3;
sprintf(cTemp,"Phase=%5.1f°",A);

A = 56.7;
swprintf(cTemp,sizeof(cTemp),"Phase=%5.1f°",A);

while(1);

}

2016/10/27 15:34
轉換PDF檔 列印


Re: XC32 V1.32 swprintf() 問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 13980
等級: 72; EXP: 24
HP : 1068 / 1781
MP : 4660 / 68448
離線
我也用 sprint(f ) 來轉換,與 printf( ) 用法一模一樣,將列印輸出轉成字串存在 *指標裡。

只是那個溫度的符號"°" 因為 LCD 模組不支援此顯示字元一直都無法完成度的符號顯示。

2016/10/27 16:14
轉換PDF檔 列印


Re: XC32 V1.32 swprintf() 問題
高級會員
註冊日期:
2011/05/27 09:38
所屬群組:
註冊會員
文章: 82
等級: 8; EXP: 0
HP : 0 / 175
MP : 27 / 3113
離線
感謝大家的回覆!
會使用 swprintf 主要是要做中文輸出(雙位元字串)

2016/10/27 18:11
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project