繁体   English   中英

使用getline读取从输入文件到输出文件的一行

[英]Using getline to read a line from input file to output file

尝试编译以下代码时遇到错误:

与使用提取或插入运算符相比,需要使用getline函数有点困难。 不太确定我在做什么错,但是我知道它一定不是正确的语法。

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    string line;
    string filename;

    ifstream inFile;
    ofstream outFile;
    int num;

    line = "No Value";
    filename = "No Value";
    num = -1;


    inFile.open("in1.txt");
    outFile.open("out.txt");
    getline(inFile,outFile);

    return 0;
}

基本上,我只希望它从infile中提取一行,然后将其输出到outfile。 但是我需要使用getline。

FileIO_2.cpp:24:24: note:   'std::ofstream {aka 
std::basic_ofstream<char>}' is not derived from 
'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
  getline(inFile,outFile);

对于错误:

更改这部分代码:

getline(inFile,outFile);

对此:

getline(inFile, line); // get the line from "inFile" and output it to the variable "line"
outFile << line; // write "line" variable data to "outFile"
// another way is: outFile.write(line.c_str(), line.size());

getline需要输入文件和输出string变量,而不是输出文件。 在此处阅读有关getline更多信息: https : //en.cppreference.com/w/cpp/string/basic_string/getline

对于您的代码:

有未使用的变量,似乎您应该使用它们。 filename可能应该用作“输入” /“输出”文件名,也许添加另一个存储另一个文件名的变量会更好。 在这种情况下, int num看起来毫无用处。 您的代码以以下形式看起来可能会更好:

string line, input_filename, output_filename;
ifstream inFile;
ofstream outFile;

input_filename = "in1.txt";
output_filename = "out.txt";

inFile.open(input_filename);
outFile.open(output_filename);
getline(inFile, line);
outFile << line;

getline需要一个字符串作为它的第二个参数,但是您已经给了它一个流。

从输入文件中读取字符串,然后将字符串写入输出文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM