近期研究設計模式,在程式輸出時心血來潮用了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...