關於C的printf不能直接輸出string型別

2021-10-06 14:47:50 字數 352 閱讀 1545

在程式輸出時心血來潮用了c版本的printf,結果就蛋疼了,一直輸出是亂碼,

string s = "中國";

printf("%s" , s);//輸出亂碼

果斷切換成c++版本的cout發現可以正常輸出。於是上網找答案,居然驚訝的發現printf輸出字串是針對char *的,換言之,printf只能輸出c語言中的內建資料,string不是c語言內建資料。

所以要做如下操作:

string s = "中國";

printf("%s" , s.c_str());//string中c_str()成員方法返回當前字串的首字元位址

或cout<

printf不能直接輸出string型別

近期研究設計模式,在程式輸出時心血來潮用了c版本的printf,結果就蛋疼了,一直輸出是亂碼,string s 中國 printf s s 輸出亂碼 果斷切換成c 版本的cout發現可以正常輸出。於是上網找答案,居然驚訝的發現printf輸出字串是針對char 的,換言之,printf只能輸出c語言...

今天才發現printf不能直接輸出string型別

近期研究設計模式,在程式輸出時心血來潮用了c版本的printf,結果就蛋疼了,一直輸出是亂碼,string s 中國 printf s s 輸出亂碼果斷切換成c 版本的cout發現可以正常輸出。於是上網找答案,居然驚訝的發現printf輸出字串是針對char 的,換言之,printf只能輸出c語言中...

從C中變化過來的各種語言的printf輸出格式

在c php和shell中經常可以碰到printf的使用,特別是在php中printf的相關變種有好幾個 print printf sprintf vprintf vsprintf 在這些語言中,printf基本上都是格式化輸出字串,而且基本都是在c的基礎上演變來的,下面就以php中的這些做個記錄 ...