C ++读取txt文件并在每行中追加数据

时间:2017-11-04 19:00:52

标签: c++ iostream ifstream ofstream

我想打开一个文件,并在每行中追加一个字符串。

我有这段代码:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;

//argv[1] input file 
//argv[2] string to add in the end of each line
//argv[3] output file
int main(int argc, char *argv[]){

  ifstream open_file(argv[1]);
  if (!open_file) {
      std::cerr << "Could not open input file\n";
      return 0;
  } 
  ofstream new_file(argv[3]);
  if (!new_file) {
     std::cerr << "Could not create output file\n";
     return 0;
  } 
  string s = argv[2];
  string str;
  while (getline(open_file, str)) {
     new_file << str << s << "\n";
  }
}

事情是字符串没有在每行的末尾添加。它正在为每个尝试追加的字符串创建一个新行。

所以我运行例如:./ appendstring.e wordlist.txt hello new_wordlist.txt

这是输出:

enter image description here

我真的不知道我在这里做错了什么。

提前致谢。

1 个答案:

答案 0 :(得分:1)

也许你的第一个文件包含行结束的\ r \ n序列..

您可能必须删除第一个文件中已有的\r字符,因为您正在读取末尾带有\r的字符串。

在使用此行代码之前,在\r的末尾修剪str

new_file << str << s << "\n";

见这里 http://www.cplusplus.com/reference/string/string/getline/