2012-04-19 127 views
1

我到目前为止这段代码反向文本文件中的行:C++:使用堆栈

#include <stdio.h> 
#include <stdlib.h> 
#include <fstream> 
#include <iostream> 
#include <string> 
#include <stack> 
using namespace std; 

int main() { 


ifstream in; 
in.open("example.txt"); 

ofstream outfile; 
outfile.open("out.txt"); 

stack<string> lines; 
string temp; 
while(getline(in, temp)) 
    lines.push(temp); 
while(!lines.empty()) 
    outfile << lines.pop() << endl; 

in.close(); 
outfile.close(); 

return 0; 
} 

我的问题是,为什么我得到的编译错误“敌不过在OUTFILE操作< <” 。

+0

附加题 - 如何做,如果你的文件有100M行此代码的工作? – 2012-04-19 17:28:01

+0

医管局,而不是家庭作业。我有一个.bmp,我转换为二进制文件,但它倒过来。我只是需要翻转它之前,我开始将二进制转换为十六进制,然后将其放入数组的屏幕图像进行。小屏幕效率并不重要。 – LiverpoolFTW 2012-04-19 17:29:48

回答

7

pop()返回void,而不是std::string。使用top()然后pop()

while(!lines.empty()) 
{ 
    outfile << lines.top() << endl; 
    lines.pop(); 
} 
+0

AHHH,谢谢。所以我把它改成了lines.top(),然后我改了line.pop()。 – LiverpoolFTW 2012-04-19 17:20:42