c ++程序中的未知错误

时间:2016-08-22 17:44:54

标签: c++

我有一个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会出错,这可能是一个简单的错误,但我不知道。

请帮帮我。

2 个答案:

答案 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