"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
// 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);
參考這篇
#include<stdio.h>
int main(int argc, char *argv[]) {
int n = 103;
printf("%d\n",~!n);
return n;
}
給你的解答參考,可以編譯器測試看看,感恩。