问题标签 [iostream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 通过 JNI 接口共享输出流
我正在编写一个通过 JNI 接口使用 C++ 库的 Java 应用程序。C++ 库创建类型为 的对象Foo
,这些对象通过 JNI 适当地传递给 Java。
假设库有一个输出函数
我有一个 Java OutputStream out
。如何Foo::print
从 Java 调用以使输出显示在上out
?有什么方法可以强制OutputStream
到std::ostream
JNI 层中的 a 吗?我可以在 JNI 层的缓冲区中捕获输出然后将其复制到out
吗?
c++ - 如何使我的 char 缓冲区更高效?
我必须将大量数据读入:
第 3 方库多次读取此数据。在每一轮它都会调用我的回调函数,其签名如下:
目前,我已经使用 STL Container 实现了一个缓冲区容器,其中提供了我的方法insert()
,getBuff
用于插入新缓冲区并获取存储的缓冲区。但我仍然想要性能更好的代码,这样我就可以最大限度地减少分配和取消分配:
我怎样才能使它更高效?
c++ - C++ 中的标准输出流是线程安全的(cout、cerr、clog)吗?
我知道当前没有线程的概念C++
,但这篇文章是说:
一种类型安全、线程安全、可移植的 日志机制
......
该
fprintf()
函数是线程安全的,因此即使从不同的线程使用此日志,输出行也不会被打乱。
和怎么cout
样?cerr
clog
我认为这个问题也适用于 C++ 中的所有类型的流类型,比如fstream
和stringstream
.
c++ - stringstream临时ostream返回问题
我正在创建一个包含以下部分的记录器:
带着这样的想法:
这一切都按预期工作,但是当我这样做时:
这没用:
导致“格式”包含垃圾数据而不是通常的正确字符串。
我认为这是因为 << 运算符返回的临时 ostream 超过了它来自的字符串流。
还是我错了?
(为什么 string() 以这种方式工作?是因为它返回对自身的引用吗?我假设是的。)
我真的很想这样做,因为我会在登录发布模式时消除额外的分配。
任何以这种方式完成它的指针或技巧都将受到欢迎。在我的实际解决方案中,我有许多不同的日志功能,它们都比这更复杂。所以我希望在调用代码中以某种方式实现它。(如果可能,不要修改我的#define)
只是给出一个想法,我的一个实际#defines的一个例子:
它匹配采用 char*、string() 和 ostream() 的 varargs printf-like log 函数以及采用 string()、exception() 和 HRESULT 的非 vararg 函数。
c++ - C++中有二进制内存流吗
我通常stringstream
用来写入内存中的字符串。有没有办法以二进制模式写入字符缓冲区?考虑以下代码:
内存ch
将如下所示: 0x313233 - 字符 1、2 和 3 的 ASCII 码。我正在寻找一种自己编写二进制值的方法。也就是说,我希望内存中有 0x010203。问题是我希望能够编写一个函数
并决定外部使用哪种流。像这样的东西:
有任何想法吗?
c++ - 像 iostream 这样的大型包含文件是否有效?(C++)
iostream,当它包含的所有文件、那些包含的文件等等,加起来大约有 3000 行。
考虑 hello world 程序,它只需要在屏幕上打印一些东西就可以了:
这应该是一段非常简单的代码,但 iostream 将 3000+ 行添加到边缘代码中。那么,是否真的需要这 3000 多行代码才能简单地在屏幕上显示一行,如果不需要,它们创建的程序是否比我简单地将相关行复制到代码中效率低?
c++ - 你能告诉 iostreams 哪些字符被视为空格吗?
这样你就可以做这样的事情,例如:
这通常需要格式化字符串"01 22 42 18"
。您可以直接修改当前语言环境来执行此操作吗?
c++ - 使用一对迭代器进行字符串初始化
我正在尝试使用迭代器初始化字符串,类似这样的工作:
但这不是:
谢谢你。
java - 在java中从命令行读取用户输入的正确方法
我希望就我从命令行读取用户输入的方式获得一些关于最佳实践和评论的意见。有没有推荐的方法来做到这一点,我是否正确使用了 try/catch 块?
我的示例在这里运行良好,但仍然想听听是否有“更清洁”的方式来做到这一点。非常感谢。例如,他是否需要在每个 catch 块中返回语句?或者,我应该将我的逻辑(条件)放在 try 块中吗?
公共类客户{
}
c++ - 如何组合输出流,以便输出一次到达多个位置?
我想将两个(或更多)流组合成一个。我的目标是任何指向cout
,的输出cerr
,clog
以及与原始流一起输出到文件中。(例如,当事情被记录到控制台时。关闭后,我希望仍然能够返回并查看输出。)
我正在考虑做这样的事情:
这似乎很简单。然后 main 中的调用将类似于:
我也看了boost::iostreams
,但没有看到任何相关的东西。
还有其他更好/更简单的方法来实现这一点吗?