我在這裏錯過了什麼?這讓我瘋狂!C++:爲什麼我不能用sprintf打印const char *?
我有代碼的另一部分返回爲const char *
const char* Notation() const
{
char s[10];
int x=5;
sprintf(s, "%d", x);
return s;
}
我現在做這樣的功能:
.....
.....
char str[50];
sprintf(str, "%s", Notation());
.....
.....
但海峽保持不變。
相反,如果我這樣做:
.....
.....
char str[50];
str[0]=0;
strcat(str, Notation());
.....
.....
STR設置正確。
我很奇怪,爲什麼預期的sprintf沒有工作...
也許一個想法是將函數改爲:void Notation(char * buffer)const並且在調用者提供的char緩衝區上工作。 – Wartin
爲什麼downvote?問題很明顯,給出了一個「有效的」樣本,顯示了努力,並給出了實際的問題樣本。 – chris