printf不能直接輸出string型別

2021-09-26 03:49:11 字數 325 閱讀 6692

近期研究設計模式,在程式輸出時心血來潮用了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()成員方法返回當前字串的首字元位址

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

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

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

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

核心建立的使用者程序printf不能輸出一問的研究

close on exec init open fds init fd array 我們從這裡可以看到,核心的第一程序是沒有帶開啟檔案資訊的.我們來看一下使用者空間的init程序的建立過程 start kernel rest init 中 片段如下 static void noinline init...