C++ 从不断增长的文本文件C++;实时
我浏览了所有关于实时阅读文本文件的答案,但似乎没有一个有效。 在我的程序中,1有一个不断增长的文本文件,由一个硬件编写,该硬件提供两个坐标(两列)。 在程序2中,我想实时读取这些坐标,并将另一个硬件移动到正在写入的坐标。 最大的问题是我想以尽可能短的延迟工作(低于50毫秒)。 我试过记事本++,但它的刷新率是3秒,这太多了。C++ 从不断增长的文本文件C++;实时,c++,visual-studio,ifstream,C++,Visual Studio,Ifstream,我浏览了所有关于实时阅读文本文件的答案,但似乎没有一个有效。 在我的程序中,1有一个不断增长的文本文件,由一个硬件编写,该硬件提供两个坐标(两列)。 在程序2中,我想实时读取这些坐标,并将另一个硬件移动到正在写入的坐标。 最大的问题是我想以尽可能短的延迟工作(低于50毫秒)。 我试过记事本++,但它的刷新率是3秒,这太多了。 有人能告诉你怎么做吗?你最快的反应是直接轮询(读取硬件)或让硬件创建一个调用你的程序的事件(中断) 写入文件需要时间。操作系统必须在硬盘上找到空间,写入硬盘;更不用说加速马
有人能告诉你怎么做吗?你最快的反应是直接轮询(读取硬件)或让硬件创建一个调用你的程序的事件(中断) 写入文件需要时间。操作系统必须在硬盘上找到空间,写入硬盘;更不用说加速马达旋转硬盘所需的时间了 写入内存要快得多。更有效的方法是H/W写入内存而不是文件。或者,内存映射文件或RAM驱动器将是下一个最佳选择 还要记住,Windows不是实时操作系统。您的系统中还有其他任务需要调出并执行。这会使您的“实时”需求减少时间。您可能希望研究Windows,看看是否有API允许您的程序以独占方式访问处理器(或使您的程序具有非常高的优先级) 研究“Windows驱动程序”,编写能够为您的H/W服务并实时执行活动的代码 我试过这个:
int main()
{
std::ifstream ifs(“file.txt”)
if(if.is_open())
{
std::字符串行;
while(true)
{
while(std::getline(ifs,line))std::cout文件可能不是正确的选择。您可以访问管道、套接字或其他形式的吗?我认为我无法访问这些。如果不是文本文件,什么可能是正确的选择?硬件如何与PC通信?直接连接(PCI总线)?外部通信,例如USB、RS232、并行、以太网等?也值得更新目标操作系统的问题。这里的人将熟悉您正在使用的任何东西,并可以建议选项。例如,如果您在Windows上运行,邮件槽()这是一种非常简单、开销相对较低的快速传递小消息的方法。我最大的问题是需要刷新记事本文件。我的要求是,只要我更改txt文件中的数据,它就会显示在控制台窗口上。
if (ifs.is_open())
{
std::string line;
while (true)
{
while (std::getline(ifs, line)) std::cout << line << "\n";
if (!ifs.eof()) break;
ifs.clear();
}
}
return 0;