久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4465|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言sprintf函數(shù)問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
50黑幣


如圖  第一個(gè)可以正常運(yùn)行

第二個(gè)  浮點(diǎn)型程序卡這不運(yùn)行了

求大神指點(diǎn)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:306945 發(fā)表于 2019-2-22 17:49 | 只看該作者
可能是浮點(diǎn)數(shù)類型轉(zhuǎn)換成整形時(shí),缺少小數(shù)部分

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:105804 發(fā)表于 2019-2-22 20:05 | 只看該作者
我印象中好像不能這樣寫的,sprintf(str,"%d",sw);這里的str代表的是str[80]的首地址,兩個(gè)不同數(shù)據(jù)類型的數(shù)據(jù)數(shù)組str的首地址開(kāi)始存儲(chǔ),這樣寫好像會(huì)引起段錯(cuò)誤的,最好另外定義多一個(gè)數(shù)組;還有就是你第一個(gè)最好強(qiáng)制類型轉(zhuǎn)換一下,

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:477932 發(fā)表于 2019-2-22 22:07 | 只看該作者
C語(yǔ)言很基礎(chǔ)的知識(shí)

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
嘉立創(chuàng)AAA + 10

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:461179 發(fā)表于 2019-2-23 15:09 | 只看該作者
要么在第一個(gè)sprintf之后清空str里的內(nèi)容,要么就再定義一個(gè)字符串來(lái)存儲(chǔ)。不然第一個(gè)都沒(méi)有意義。
還有,什么叫程序卡在這了。。。。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:94031 發(fā)表于 2019-2-23 15:17 | 只看該作者
要用 (float) 強(qiáng)制轉(zhuǎn)換一下。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

7#
ID:479827 發(fā)表于 2019-2-23 23:17 | 只看該作者
sprintf的作用是將一個(gè)格式化的字符串輸出到一個(gè)目的字符串中,sprintf的第一個(gè)參數(shù)應(yīng)該是目的字符串,如果不指定這個(gè)參數(shù),執(zhí)行過(guò)程中出現(xiàn)     "該程序產(chǎn)生非法操作,即將被關(guān)閉...."的提示。 因?yàn)镃語(yǔ)言在進(jìn)行字符串操作時(shí)不檢查字符串的空間是否夠大,所以可能會(huì)出現(xiàn)數(shù)組越界而導(dǎo)致程序崩潰的問(wèn)題。即使碰巧,程序沒(méi)有出錯(cuò),也不要這么用,因?yàn)樵缤頃?huì)出錯(cuò)。所以一定要在調(diào)用sprintf之前分配足夠大的空間給buf。int i = 100; sprintf(s, "%.2f", i); 會(huì)打出什么東東來(lái)?“100.00”?對(duì)嗎?自己試試就知道了,第一個(gè)打出來(lái)的肯定不是正確結(jié)果,原因跟前面提到的一樣,參數(shù)壓棧時(shí)調(diào)用者并不知道跟i 相對(duì)應(yīng)的格式控制符是個(gè)”%f”。而函數(shù)執(zhí)行時(shí)函數(shù)本身則并不知道當(dāng)年被壓入棧里的是個(gè)整數(shù), 于是可憐的保存整數(shù)i 的那4 個(gè)字節(jié)就被不由分說(shuō)地強(qiáng)行作為浮點(diǎn)數(shù)格式來(lái)解釋了,整個(gè)亂套了。試試 sprintf(s, "%.2f", (double)i);
回復(fù)

使用道具 舉報(bào)

8#
ID:479827 發(fā)表于 2019-2-23 23:19 | 只看該作者
sprintf的作用是將一個(gè)格式化的字符串輸出到一個(gè)目的字符串中,而printf是將一個(gè)格式化的字符串輸出到屏幕。sprintf的第一個(gè)參數(shù)應(yīng)該是目的字符串,如果不指定這個(gè)參數(shù),執(zhí)行過(guò)程中出現(xiàn)     "該程序產(chǎn)生非法操作,即將被關(guān)閉...."的提示。
因?yàn)镃語(yǔ)言在進(jìn)行字符串操作時(shí)不檢查字符串的空間是否夠大,所以可能會(huì)出現(xiàn)數(shù)組越界而導(dǎo)致程序崩潰的問(wèn)題。即使碰巧,程序沒(méi)有出錯(cuò),也不要這么用,因?yàn)樵缤頃?huì)出錯(cuò)。所以一定要在調(diào)用sprintf之前分配足夠大的空間給buf。
int i = 100;
sprintf(s, "%.2f", i);
會(huì)打出什么東東來(lái)?“100.00”?對(duì)嗎?自己試試就知道了
第一個(gè)打出來(lái)的肯定不是正確結(jié)果,原因跟前面提到的一樣,參數(shù)壓棧時(shí)調(diào)用者并不知道跟i
相對(duì)應(yīng)的格式控制符是個(gè)”%f”。而函數(shù)執(zhí)行時(shí)函數(shù)本身則并不知道當(dāng)年被壓入棧里的是個(gè)整數(shù),
于是可憐的保存整數(shù)i 的那4 個(gè)字節(jié)就被不由分說(shuō)地強(qiáng)行作為浮點(diǎn)數(shù)格式來(lái)解釋了,整個(gè)亂套了。
試試下面這個(gè):
sprintf(s, "%.2f", (double)i);

評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

9#
ID:479009 發(fā)表于 2019-2-24 01:24 | 只看該作者
就是壓棧位數(shù)的問(wèn)題,默認(rèn)當(dāng)int兩個(gè)字節(jié),float是4個(gè)字節(jié)的。
默認(rèn)位數(shù)跟編譯器關(guān)系很大,c51,gcc,vc都不一樣。
C51的double和float都是4字節(jié)的,別的地方可不一樣,要小心。
感覺(jué)換成sprintf(s, "%.2f", (float)i);在更多的平臺(tái)上通用
回復(fù)

使用道具 舉報(bào)

10#
ID:480566 發(fā)表于 2019-2-25 19:29 | 只看該作者
應(yīng)該強(qiáng)制轉(zhuǎn)換一下類型,自動(dòng)補(bǔ)齊小數(shù)點(diǎn)后面的。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲性视频| av在线电影网站 | 玖玖玖在线观看 | 天天色天天色 | 麻豆av网| 伊人狠狠 | 国产污视频在线 | 日本免费一区二区三区视频 | 美女久久 | 亚洲电影一区二区三区 | 国产美女精品 | 国产黄色av网站 | 亚洲一区二区三区四区视频 | 午夜理伦三级理论三级在线观看 | 久久精品亚洲成在人线av网址 | 日韩一区二区不卡 | 日日夜精品视频 | 久久综合久色欧美综合狠狠 | 久久小视频 | 久色一区| 一区在线播放 | 国产免费一区 | 亚洲精品自拍视频 | 日本精品一区二区在线观看 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 国产一区二区在线91 | 久久九七| 男女搞网站 | 人人做人人澡人人爽欧美 | 日韩一区在线视频 | 久久久久av | 国产九九九 | 成人三级在线播放 | 成人影院在线观看 | 欧美日产国产成人免费图片 | 国产永久免费 | 中文字幕免费观看 | 欧美狠狠操 | 伊人网站在线 | 亚洲一区二区在线视频 | 欧美日韩精品区 |