- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这就像 readsome 甚至没有阅读。返回 0 并且不读取任何字符。这里有什么问题?
#include <fstream>
#include <iostream>
int main ()
{
std::fstream stream("list.cpp", std::ios::in);
if (stream.good() || !stream.bad() || stream.is_open()) {
std::cout << "Well, stream looks good." << std::endl;
char justOneChar = 'L';
auto ssize = stream.readsome(&justOneChar, 1);
std::cout << ssize << " : " << justOneChar << std::endl;
}
return -1;
}
输出:
嗯,流看起来不错。0 : 大号
最佳答案
咨询a reference ,
The behavior of this function is highly implementation-specific. For example, when used with
std::ifstream
, some library implementations fill the underlyingfilebuf
with data as soon as the file is opened (andreadsome()
on such implementations reads data, potentially, but not necessarily, the entire file), while other implementations only read from file when an actual input operation is requested (andreadsome()
issued after file opening never extracts any characters). Likewise, a call tostd::cin.readsome()
may return all pending unprocessed console input, or may always return zero and extract no characters.
简而言之,readsome
是相当无用的,至少对于标准流而言是这样。这是一个 super 非阻塞读取:它只会加载已在用户级进程中缓冲的数据,并且永远不会进行内核调用。
关于C++ std::istream readsome 不读取任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098420/
我写了上面的代码来测试“readsome”。当使用“读取”时,代码可以工作,但需要等待输入 0x10 个字符才能工作。使用“readsome”,我的系统(ubuntu Linux 3.13.0-37)
我想做的是,一次发送一个 8kB 的文件。 (没有用完整文件填充 RAM) 这是我的代码: while ( file.good()){ file.readsome(sinLine,8000);
我调查了如果缓冲区中没有足够的空间,方法 ifstream::readsome(buf, size) 不会读取所有字节。示例: 我有缓冲区:4096 字节。从文件开始的偏移量:6 字节。我调用 ifs
我目前在使用 boost::asio 时遇到问题,我想像下面的代码一样编写和读取。写入工作正常,但读取总是返回零。其实我也发现每个网站都指的是 read_some 函数而不是 readsome 函数库
上下文:我正在尝试用 C++ 读取 PNG 图片的内容,以便稍后将其发送到我的 Android 应用程序。为此,我以二进制模式打开文件,按 512 字节的 block 读取它的内容,然后将数据发送到应
这就像 readsome 甚至没有阅读。返回 0 并且不读取任何字符。这里有什么问题? #include #include int main () { std::fstream stream(
这段代码永远循环: #include #include #include int main(int argc, char *argv[]) { std::ifstream f(argv[
我用 C++ 代码和辅助工具 pv(管道查看器)做了一个简单的测试。代码是: #include #include int main() { std::array buffer; w
这些功能有什么区别。当我使用它们时,它们都做同样的事情。例如所有三个调用都返回 "hello": #include #include int main() { stringstream s
我只是采用了一些在 Linux 下开发的文件阅读器的旧代码,并尝试在我的 Windows 项目中使用完全相同的代码,该项目是用 MSVC++7.1 编译的。代码编译没有任何问题,但根据 Windows
我是一名优秀的程序员,十分优秀!