所以這是我的代碼如何在字符串中使用printf?
string name;
cout <<"\n Enter Your name : \n";
cin >> name;
printf("%s" , name);
和一些奇怪的原因,在這個
爲什麼代碼塊崩潰?
我該如何解決?
感謝
所以這是我的代碼如何在字符串中使用printf?
string name;
cout <<"\n Enter Your name : \n";
cin >> name;
printf("%s" , name);
和一些奇怪的原因,在這個
爲什麼代碼塊崩潰?
我該如何解決?
感謝
如果需要您std::string
傳遞給接受/函數使用C風格的字符串(const char *
),使用.c_str()
。它返回一個const char *
。
這就是你需要使用現有的庫,系統調用等時應該做的事情。對於你自己的代碼,找到更多的C++方法通常會更好。
在這種情況下:
std::cout << name << std::endl;
請勿混用'和'printf'的std :: cout'。兩者都被緩衝,但使用*不同的緩衝區,這可能會使您的輸出出現意外。 –
只要你沒有調用'ios :: sync_with_stdio(false)',混合C++風格和C風格的I/O就完全定義好了。雖然這可能是不好的風格。 – Brian