有沒有什麼辦法從C++的主函數返回字符串?我提到下面的示例程序從C++主函數返回字符串
string main(int argv, char* argc[])
{
.
.
return "sucess";
}
有沒有什麼辦法從C++的主函數返回字符串?我提到下面的示例程序從C++主函數返回字符串
string main(int argv, char* argc[])
{
.
.
return "sucess";
}
標準表示:
3.6.1主要功能[basic.start.main]
2 /一種實現不應預定義的主要功能。該功能不得超載。 它應該有一個類型爲int的返回類型,否則它的類型是實現定義的。所有的實現應允許兩個
- 的函數()返回int和
- 的函數(INT,指針字符指針)返回int
爲一體的類型主要。 [...]
所以不,你必須返回一個int。
從您發表您的意見,您似乎想簡單地輸出到標準輸出一個字符串,那麼你可以做:
#include <iostream>
int main()
{
std::cout << "Success" << std::endl;
// No need for return 0; it is implicit in C++
}
由於Kerrek SB在評論中表示,return 0;
在C++隱式(標準§3.6.1/5):
[...]如果控制到達的
main
而不會遇到結束聲明中,效果是執行return 0;
如果你在這一節中進一步閱讀,你會發現'return 0'是多餘的:-) –
@KerrekSB你是對的。我編輯了我的帖子。感謝您指出這一點;) –
不,你不能在C++中從main返回字符串,從main函數返回值是進程返回碼(如果成功則返回0,如果過程失敗則返回0)。所以OS正在等待從你的應用程序結束的正確信號。
,你不行,你必須返回一個int
。更深入的思考,一個字符串將是困難的一個shell程序來處理:當將內存被釋放,什麼樣的字符串將返回& C)
但是你可以寫信給標準輸出或標準錯誤使用std::cout
或std::cerr
。當您希望控制檯應用程序輸出類似字符串的數據時,這是正常的事情。
通常情況下,您依靠OS shell將您的程序的標準輸出引導至另一個輸入(unix使用管道|
)。
您可能想閱讀:http://stackoverflow.com/questions/204476/what-should-main-return-in-c-and-c – Stefan
你爲什麼要這麼做?誰會收到這個字符串? – Asaf
你打算如何使用該字符串? – zakinster