在C++中创建不可见的文本文件
Create an invisible text file in C++
简单地说,我有一个在FLTK Gui工具包中使用的浏览器小部件,可以使用这样的文件加载。
browser::load("textfile.txt");
问题是我不想创建一个物理文本文件,只是一个不可见的文件,所以我可以将其用作上面的 browser::load 的参数。 我计划通过加载我将要放置在浏览器中的值来使用这个不可见的文本文件......然后像这样使用它。
browser::load("invisible_textfile.txt");
C++可以做到这一点吗?
我已经尝试使用可能与此无关的ifstream::rdbuf()
。 我什至不确定该怎么称呼它,所以我现在只是称它为不可见的文本文件。
我使用的是 Windows 7 64 位。 MinGW编译器。
假设您要添加的内容等效于这样的文本文件:
One
Two
Three
但是您不希望拥有文本文件。因此,一段可以做同样事情的代码是这样的:
const char *lines[] = { "One", "Two", "Three", 0 };
for(int i = 0 ; lines[i] != 0 ; ++i)
browser.add(lines[i]);
add
重载的文档链接
如果您需要有关如何lines
数据的更多帮助,请优化您的问题,或者提出一个新问题。
这在很大程度上取决于browser::load()
内部的实际操作,但让我们假设它会查找您的文件名并加载它。
您可能已经知道如何读取/写入标准文件(例如 http://www.cplusplus.com/doc/tutorial/files/)。现在,如果您只想对用户隐藏文件,则可以设置特定于操作系统的隐藏标志(例如Windows)。我假设这不是你在这里真正想要完成的。(显然,您也可以创建一个再次删除的临时文件,但这也不是一个优雅的解决方案。
您可能想要使用的是命名管道。在 Linux 下,您可以使用mkfifo
创建这些文件,然后通过这些文件对象流式传输内容。
不过,一般的一点是,除非browser
API允许您向其传递包含文本文件或stringstream
的完整字符串,否则您将需要一个文件对象。
如果您唯一的目标系统是NTFS,那么在这里创建虚拟文件有一个很好的答案:如何创建虚拟文件?
但最后,您可能想要创建一个实际文件(在您的情况下可能是临时文件)。我建议将该文件放入系统临时路径中。
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- C++试图读取一个文件并输出到另一个文本文件
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 已修改的LinkedList未在文本文件本身中更新
- C++文本文件的获取线
- 为什么C++的文件 I/O 在读取文本文件时忽略初始空行?我怎样才能让它不这样做?
- 打印逐行存储的文本文件
- C++文本文件输入