我有一个c ++程序,根据用户输入的内容打开一个URL。
以下是代码:
#include <iostream>
#include <string>
using namespace std;
int main(){
int i = 1;
string google = "https://www.google.com/search?q=";
string input;
getline(cin, input);
string changeSpace(string input)
{
for (int i = 0; i < text.length(); i++)
{
if (text[i] == ' ')
text[i] = '+';
}
return text;
}
input = changeSpace(input);
cout << input << endl;
string url = string(google + input);
system(string("start " + url).c_str());
cout << url << endl;
}
错误在于:
string changeSpace(string input)
{
在括号中,它表示预计会有一个&#34; ; &#34;
而且我不知道为什么ocurrs会出错,这可能是一个简单的错误,但我不知道。
请帮帮我。
答案 0 :(得分:5)
您的问题是因为您正在尝试定义其他功能中的某个功能。你不能这样做。
自 C ++ 11 以来,您可以做的最相似的事情就是使用{{3}}。
int main() {
// stuff...
auto changeSpace = [] (string text) -> string
{
for (int i = 0; i < text.length(); i++)
{
if (text[i] == ' ')
text[i] = '+';
}
return text;
}
input = changeSpace(input);
// stuff...
}
但我敢打赌,这不是代码中唯一的错误。
答案 1 :(得分:0)
c ++中不允许嵌套函数。请参阅:C++ can we have functions inside functions?
要在代码中使用system(string("start " + url).c_str());
,您应该包含<cstdlib>
。并且还在main中使用return语句:return 0