如何在不使用C ++变量的情况下从文件读取并打印到控制台?

时间:2016-05-07 00:36:24

标签: c++

在我的代码中我有

for (int i = 0; i < 5; i++) {
    ranInts= rand();//generate a random integer, store in ranInts
    cout << ranInts<< " ";//Print out ints
    binaryFile.write(reinterpret_cast <char *>(&ranInts), sizeof(int))//Write to file
        }

要阅读的代码是

binaryFile.seekg(ios::beg);//Set the pointer in file to beginning
for (int i = 0; i < 5; i++) {
    binaryFile.read(reinterpret_cast <char *>(&ranInts), sizeof(int));
    //reading each int moves the file pointer down 4 bytes, ready to get the next one

    //display
    cout << ranInts<< endl;
}

这很好用。我想要做的是从磁盘到屏幕,并将变量保留在循环之外。

这可能吗?

2 个答案:

答案 0 :(得分:2)

是的,有可能。致电std::copy根据您的文件将std::istream_iterator复制到基于std::ostream_iterator的{​​{1}}:

cout

答案 1 :(得分:0)

如果你想从磁盘转到屏幕(两个不同的设备),它真的不是问题。

  1. 打开磁盘以读取文件
  2. 测试文件结束指示符。
    码: z = open(磁盘上的文件)//返回一个ID for(,,){//这是一个永远的循环,它可以写成: 永远{ 如果#define FOREVER for(;;)这应该在你的头文件中。 或者你可以使用do {....} while(z&gt; 0); 读(从z,缓冲区) 你应该测试缓冲区以确保你的缓冲区不是空的,或者你是否到达了文件的末尾 fprintf(打印缓冲区内容)
  3. 注意这个策略你必须知道缓冲区的长度。 char buffer [50] make shure你为eol char添加一个\ n“

    玩得开心。