iT邦幫忙

1

如何讓C語言裡的 printf( ) 回傳(return)負值

  • 分享至 

  • xImage

"printf() : It returns total number of Characters Printed, Or negative value if an output error or an encoding error"

以上是在網路上查詢到 printf() 回傳值的意義,有提到說要讓程式輸出錯誤或編碼錯誤printf() 才會回傳負值。
想請問該如何達到上述2種錯誤其中一種,得以讓 printf() 輸出負值。

#include <stdio.h>
int main()
{
int a = 103;
printf( "\nThe value returned by printf() is : %d\n", printf("%d",a) );
return 0;
}

這是程式碼,輸出會是
103
The value returned by printf() is : 3

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-10-06 09:21:08
// encoding error - negative return value
int ret = 0;
ret = printf("%lc", (wint_t) -1);
printf("%d\n", ret);

// invalid handle - negative return value
freopen("fff", "r", stdout);

參考這篇

https://ithelp.ithome.com.tw/upload/images/20221006/200017873MYczjHQyp.png

謝謝你提供的文章
有看過文章跟試著打上面的code,結果執行不了~qq

0
小幫手
iT邦新手 5 級 ‧ 2022-12-19 12:29:32

#include<stdio.h>

int main(int argc, char *argv[]) {

int n = 103;
printf("%d\n",~!n);

return n;

}

給你的解答參考,可以編譯器測試看看,感恩。

這個跟我上面想要的還是不太一樣,但還是謝謝你的回覆

我要發表回答

立即登入回答