Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果不使用“using namespace std;”,如何使用getline()函数? 我刚开始学C++,所以如果我的问题有错,请原谅我。_C++ - Fatal编程技术网

如果不使用“using namespace std;”,如何使用getline()函数? 我刚开始学C++,所以如果我的问题有错,请原谅我。

如果不使用“using namespace std;”,如何使用getline()函数? 我刚开始学C++,所以如果我的问题有错,请原谅我。,c++,C++,在我看过的大多数教程中,我都被教导如何使用名称空间std;陈述但后来我发现这是一个糟糕的做法,所以现在我不使用它。我的问题是,如果我使用getline函数而不使用名称空间std;,我犯了一个错误。但是,如果我使用名称空间std;,它起作用了。我会给你看一些例子 不使用名称空间std 下面是使用名称空间std;的代码: 这段代码运行时没有任何错误 我应该添加任何语法吗?谁能帮帮我吗 谢谢 编辑:谢谢大家的帮助 问题是std名称空间中有很多东西 因为您没有使用名称空间std;此命名空间中的所有内容都

在我看过的大多数教程中,我都被教导如何使用名称空间std;陈述但后来我发现这是一个糟糕的做法,所以现在我不使用它。我的问题是,如果我使用getline函数而不使用名称空间std;,我犯了一个错误。但是,如果我使用名称空间std;,它起作用了。我会给你看一些例子

不使用名称空间std

下面是使用名称空间std;的代码:

这段代码运行时没有任何错误

我应该添加任何语法吗?谁能帮帮我吗

谢谢


编辑:谢谢大家的帮助

问题是std名称空间中有很多东西

因为您没有使用名称空间std;此命名空间中的所有内容都必须显式地以std::为前缀

在这种情况下,my_str有一个类型字符串。但是没有类型字符串,有一个类型std::string。你需要直言不讳

#include <iostream>

int main() {
    std::string my_str;
 // ^^^^^   Add this.

    std::cout << "Enter some text here -> ";
    std::getline(std::cin, my_str);
              // ^^^^^ Add this.

    std::cout << "You entered -> " << my_str << "\n";
                                       //    ^^^^^^^   probably add this
     
}

我想你的意思是std::string my_str;。您是否收到其他错误消息?此外,您还需要包括。噢,还有std::getlinestd::cin,我的;。事实上,由于以下原因,您可以在getline调用中省略std::。但是你需要把它放在cin上。所以,getlinestd::cin,my_str;也可以。使用名称空间std代替糟糕的名称空间std;您可以使用std::getline;使用acceptable;。根据代码和声明的错误消息,我怀疑您没有看到报告的第一个错误。始终从第一个错误开始,因为后面的错误可能是第一个错误的工件。例如,定义局部变量行上的错误可能会导致忽略该定义,从而在使用该变量时导致错误。那些后来的错误不是真正的错误,只是第一个错误的回声。编译器报告的第一个错误是什么?另外,如果IDE有一个专用的错误视图,请忽略它,而改为查找编译器输出视图。后者应该提供有关错误的更多详细信息。非常感谢,它现在可以工作了。只是一个疑问,我可以使用std::endl;代替\n?您可以使用std::endl代替\n。但这是一种糟糕的做法。你不应该像endl那样强制冲洗。如果刷新操作不正确,则刷新效率非常低,系统将正确执行该操作。@helloWorld•在过去10年中,std::endl是正确的操作,而不是\n正确的操作次数是:0。在我的平台上\n比'\n'好,因为输出单个字符会被放入一个2字符数组中,其中第二个字符是'\0'空终止符,然后调用char const*output er。
error: 'my_str' was not declared in this scope
#include <iostream>
using namespace std;

int main() {
    string my_str;
    cout << "Enter some text here -> ";
    getline(cin, my_str);

    cout << "You entered -> " << my_str;
}
#include <iostream>

int main() {
    std::string my_str;
 // ^^^^^   Add this.

    std::cout << "Enter some text here -> ";
    std::getline(std::cin, my_str);
              // ^^^^^ Add this.

    std::cout << "You entered -> " << my_str << "\n";
                                       //    ^^^^^^^   probably add this
     
}