C++中如何同步读写文本
写措施: 每个2秒写入文本一个数字;
读措施: 每个5秒读入文本最后一个数字;
写措施代码:
#include <iostream> #include <fstream> #include <windows.h> using namespace std; int main (void) { ofstream ofs("D:/w.txt"); int num = 0; while (1) { ofs << ++num << std::endl; std::cout << num << std::endl; Sleep(2000); } ofs.close(); return 0; }
输出:
读措施代码:
/* * main.cpp * * Created on: 2014.06.08 * Author: Spike */ /*vs 2012*/ #include <windows.h> #include <fstream> #include <iostream> #include <string> #include <vector> using namespace std; int main() { vector<string> tmp_files; while (1) { Sleep(5000); ifstream infile( "D:/w.txt" ); if (!infile) { cout << "fail!" << endl; return 0; } string lineContent; while ( getline( infile, lineContent, '\n' ) ){ tmp_files.push_back(lineContent); } infile.close(); std::cout << *(tmp_files.end()-1) << std::endl; } /*ofstream outfile( "w2.txt",ios::out ); vector<string>::iterator siter = tmp_files.begin(); copy( tmp_files.begin(), tmp_files.end()-1, ostream_iterator<string>(outfile) ); cout << "ok!" << endl; outfile.close();*/ return 0; }
输出:
作者:csdn博客 Spike_King