1

私はこれまでにこのコードを持っています:

#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の演算子<<に一致しない」というコンパイルエラーが発生したのかということです。

4

1 に答える 1

7

pop()voidではなく、 を返しますstd::string。使用top()してからpop()

while(!lines.empty())
{
    outfile << lines.top() << endl;
    lines.pop();
}
于 2012-04-19T17:18:13.067 に答える