gpt4 book ai didi

c++ - 除非我通过 data() 或 c_str() 运行它,否则无法将 cout 与 C++ 字符串一起使用

转载 作者:太空狗 更新时间:2023-10-29 23:46:45 24 4
gpt4 key购买 nike

在下面的程序中,当我尝试使用 cout 将 C++ 字符串输出到 stdout 时,我得到了这个 - 其他指令产生了预期的输出。我在 Windows 7 系统上使用 MS Visual Studio 2010。

First-chance exception at 0x00dd4e89 in Lab1.exe: 0xC00000FD: Stack overflow. Unhandled exception at 0x00dd4e89 in Lab1.exe: 0xC00000FD: Stack overflow. The program '[3740] Lab1.exe: Native' has exited with code -1073741571 (0xc00000fd).

#include "StdAfx.h"
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <ostream>
#include <string>
#include <ctime>

//more code here

int main() {

int number = 1;
string myStr = "Hello, string!";
cout << "number: " << number << endl;
cout << "Hello, World!" << endl;
cout << myStr << endl; //failing instruction

cout << "\nHit any key to continue...." << endl;
cin.get();

return 0;
}

我的导师建议将失败的指令更改为使用 data()c_str(),如下所示:

   cout << myStr.data() << endl;

我这样做了,这解决了问题。他不知道为什么,只是说这很管用,所以不用担心。

在我看来,像 cout 这样的 C++ ostream 对象应该能够处理 C++ 字符串。我是否遗漏了什么,或者我真的需要将 data()c_str()cout 一起使用吗?

我还尝试使用 std::coutstd::stringstd::endl - 它没有帮助。

提前感谢您的建议;我真的很想了解这里发生了什么。

海伦

最佳答案

您应该包含 string 而不是 string.h:

#include <string>

关于c++ - 除非我通过 data() 或 c_str() 运行它,否则无法将 cout 与 C++ 字符串一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com