C++ 串流问题
以下是一些以前与我的代码一起使用的代码,但现在出现了问题:C++ 串流问题,c++,xcode,macos,C++,Xcode,Macos,以下是一些以前与我的代码一起使用的代码,但现在出现了问题: #include <iostream> #include <fstream> #include <sstream> #include <cstring> using namespace std; int main() { stringstream out; out << 100; cout << out.str(); } #包括 #包括 #包括 #
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstring>
using namespace std;
int main()
{
stringstream out;
out << 100;
cout << out.str();
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
流出来;
out对我有效。如果有问题,应该是你的gcc
顺便说一句,也许你必须添加fflush(stdout);在cout之后它对我有效。如果有问题,应该是你的gcc
顺便说一句,也许你必须添加fflush(stdout)另一个想法是,在升级之前,你有一个.O文件,它在某种程度上使事情变得混乱。从C++编译器的两个不同版本混合.O文件会引起各种奇怪的问题。我也不打折头文件问题,尽管String应该包括String。< /P> < P>另一个ID。EA是你在升级之前遗留的.O文件,它在某种程度上使事情变得混乱。从C++编译器的两个不同版本混合.O文件会导致各种奇怪的问题。我也不打折头文件问题,尽管SsFoW应该包含String。 < P>不应该添加Bebe字符串的结尾。你要转换成字符串吗
cout << out.str() << sdt::ends;
cout在转换为字符串之前,是否应该添加字符串的结尾
cout << out.str() << sdt::ends;
cout在相同条件下获得完全相同的问题Snow Leopard 64位XCode 3.2基本SDK 10.6,切换到基本SDK 10.5即可解决此问题
显然这是SDK 10.6的问题
正确的解决方法是删除预处理器宏:
- _GLIBCXX_调试=1
- _GLIBCXX_DEBUG_PEDANTIC=1
从预处理器设置(或返回到SDK 10.5,如上所述)
在相同条件下获得完全相同的问题雪豹64位XCode 3.2基本SDK 10.6,切换到基本SDK 10.5即可解决此问题
显然这是SDK 10.6的问题
正确的解决方法是删除预处理器宏:
- _GLIBCXX_调试=1
- _GLIBCXX_DEBUG_PEDANTIC=1
从预处理器设置(或返回到SDK 10.5,如上所述)
你的意思是#include
而不是#include
?前者声明std::string
,它是stringstream::str()
的返回类型;后者只声明与strcmp()
等无关的C函数,而不是
和
多余的(从理论上讲,
缺失),我看你的代码没有任何问题。它应该可以正常工作。你是从shell还是IDE中运行它的?你是说#include
而不是#include
?前者声明std::string
,这是stringstream::str()的返回类型
;后者仅声明与之无关的C函数,如strcmp()
等,而不是
和
多余(理论上,
缺失),我看不出你的代码有任何问题。它应该可以正常工作。你是从shell还是从IDE中运行它?这也没有解决问题。我在Xcode中转到项目设置,更改了OS X 10.6->10.5中所有配置的基本SDK,这就解决了问题。你知道为什么吗?@Fu4ny:thestd::flush
在这种情况下,没有必要这样做,因为在程序退出时,流仍然会被刷新。(唯一的问题可能是Patrick在关闭的}
上有一个断点,他想知道为什么他的输出没有出现。但这不太可能。)我真的不知道为什么,但我只是添加了flush来确保流被刷新。gcc或STDOUT应该有问题。这也没有解决问题。我在Xcode中的项目设置中更改了所有配置的基本SDK,从OS X 10.6->10.5,这就解决了问题。知道为什么吗?@Fu4ny:thestd::flush实际上是不必要的,因为在程序退出时,流仍然会被刷新。(唯一的问题可能是Patrick在关闭的}
上有一个断点,他想知道为什么他的输出没有出现。但这不太可能。)我真的不知道为什么,但我只是添加了flush以确保流被刷新。gcc或stdout应该有问题