第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我打印出來的是abc 而不是ab _snprintf返回值rt為什么是-1呢?

為什么我打印出來的是abc 而不是ab _snprintf返回值rt為什么是-1呢?

慕尼黑的夜晚無繁華 2023-03-12 21:17:06
#include <stdio.h>#include <string.h>main(){char str[5];memset(str,0,sizeof(str));int rt=_snprintf(str,3,"%s","abcdefg");printf("%d\n",rt);printf("%s",str);}snprintf函數(shù)書上是說截取n-1個字符,也就是3-1個字符。 
查看完整描述

2 回答

?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗 獲得超7個贊

_snprintf(str,3,"%s","abcdefg"); 存放3個字符。(存放n個字符,下標(biāo)到 n-1)。打印出來的是abc 。
返回值rt為什么是-1呢,因為丟棄了一些字符(-1 表示發(fā)生了“錯誤”)。

如果 char str[100]; int rt = _snprintf(str,100,"%s","abcdefg");
則返回數(shù)就是7 (成功寫入str的字符個數(shù))。

查看完整回答
反對 回復(fù) 2023-03-15
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊

snprintf(),為函數(shù)原型int snprintf(char *str, size_t size, const char *format, ...)。
功能
將可變個參數(shù)(...)按照format格式化成字符串,然后將其復(fù)制到str中
(1) 如果格式化后的字符串長度 < size,則將此字符串全部復(fù)制到str中,并給其后添加一個字符串結(jié)束符('\0');
(2) 如果格式化后的字符串長度 >= size,則只將其中的(size-1)個字符復(fù)制到str中,并給其后添加一個字符串結(jié)束符('\0'),返回值為欲寫入的字符串長度。
char a[20];
i = snprintf(a, 9, "%012d", 12345);
printf("i = %d, a = %s", i, a);
輸出為:i = 12, a = 000000012345

查看完整回答
反對 回復(fù) 2023-03-15
  • 2 回答
  • 0 關(guān)注
  • 136 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號