看起来这应该很简单,但我没有在网络搜索中找到它.
我有一个ofstream的是open(),而且fail()现在是真实的.我想知道失败的原因,就像errno我会这样做sys_errlist[errno].
是否有一种简单的方法可以将输出缩进到ofstream对象?我有一个C++字符数组,它是null终止并包含换行符.我想将它输出到流中,但是用两个空格缩进每一行.有没有一种简单的方法可以使用流操纵器来执行此操作,例如您可以使用特殊指令更改整数输出的基础,或者我是否必须手动处理数组并在检测到的每个换行符时手动插入额外的空格?
看起来像string :: right()操纵器是关闭的:
http://www.cplusplus.com/reference/iostream/manipulators/right/
谢谢.
-威廉
我在std :: string中有一个unsigned char数组,但我目前的方法是使用reinterpret_cast,我想避免使用它.有更清洁的方法吗?
unsigned char my_txt[] = {
0x52, 0x5f, 0x73, 0x68, 0x7e, 0x29, 0x33, 0x74, 0x74, 0x73, 0x72, 0x55
}
unsigned int my_txt_len = 12;
std::string my_std_string(reinterpret_cast<const char *>(my_txt), my_txt_len);
Run Code Online (Sandbox Code Playgroud) 在Python v2.6中,我可以通过以下两种方式之一获取整数的十六进制:
print(("0x%x")%value)
print(hex(value))
Run Code Online (Sandbox Code Playgroud)
但是,在这两种情况下,十六进制数字都是小写.如何以大写字母获取这些内容?
我想从C++中读取当前位置的cin,直到将换行符转换为字符串.要读取的字符可以包括空格.我的第一次通过失败,因为它停在第一个空间:
string result;
cin >> result;
Run Code Online (Sandbox Code Playgroud)
如果给予cin:
(cd /my/dir; doSometing)\n
Run Code Online (Sandbox Code Playgroud)
变量结果只得到:
(cd
Run Code Online (Sandbox Code Playgroud)
我认为我应该能够使用流操纵器来实现这一点,但是skipws不是很正确,因为它会使用空格和制表符抛出回车符,而且听起来就像跳过前导空格一样.
也许我需要使用像这样的streambuf?
streambuf buf;
cin >> buf;
Run Code Online (Sandbox Code Playgroud) 我发现在C99你应该#include <stdint.h>也可以使用我的C++ 03 gcc编译器,但它是现代C++的正确标题,它是否可移植?
我在我的应用程序中出现了一个似乎不可重现的故障.我有一个TCP套接字连接失败,应用程序尝试重新连接它.在第二次调用connect()尝试重新连接时,我得到了errno == EADDRNOTAVAIL的错误结果,connect()的手册页表示:"指定的地址不能从本地计算机上获得."
看看对connect()的调用,第二个参数似乎是错误引用的地址,但据我所知,这个参数是远程主机的TCP套接字地址,所以我对这个人感到困惑页面引用本地计算机.是否我的本地计算机无法访问远程TCP套接字主机的此地址?如果是这样,为什么会这样呢?它必须在连接失败之前第一次成功调用connect()并尝试重新连接并获得此错误.connect()的参数两次都是相同的.
这个错误会不会是一个短暂的错误,如果我等了很长时间,如果我再次尝试调用connect可能已经消失了?如果没有,我应该如何从这次失败中恢复?
在C ++中,如果我有一个类:
class Example {
static int s_One, s_Two;
...
};
Run Code Online (Sandbox Code Playgroud)
语言是否明确定义了s_Two它也是静态的?
换句话说,static关键字扩展int是随处可见的,还是*仅适用于一个变量?
我正在将一些代码从lisp转换为Python.
在lisp中,您可以使用let构造,其中引入的变量声明为特殊,因此具有动态范围.(见http://en.wikipedia.org/wiki/Dynamic_scope#Dynamic_scoping)
我怎样才能在Python中做同样的事情?看来语言不直接支持这个,如果是真的,那么什么是模仿它的好方法呢?
在与许多开发人员开发大型C++编程项目时,我们遇到了在代码中不恰当地使用assert()的问题,这导致了断言确实发生并且产品崩溃的质量差.
问题是适用于assert()的适用原则是什么?何时使用assert()以及何时不使用?是否有一个标准列表,每个断言应该通过才能合法?我们如何鼓励正确使用assert()?
作为第一个解决方案,我会说assert()应该只用于记录一个被认为无法达到的条件,并且应该在运行时将其识别为assert()故障,因为它会出现,因为编程假设正在被违反.
人们可以比这更好吗?你对assert()的体验是什么?