提问人:xBurnsed 提问时间:11/5/2017 更新时间:11/5/2017 访问量:3001
C++ 读取 txt 文件并在每行中附加数据
C++ Read txt file and append data in each line
问:
我想打开一个文件,并在每一行末尾附加一个字符串。
我有这个代码:
#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
这是输出:
我真的不知道我在这里做错了什么。
提前致谢。
答:
1赞
Grantly
11/5/2017
#1
也许您的第一个文件包含 \r\n 行尾的序列。.
您可能需要删除第一个文件中已有的字符,因为您正在读取带有 on 结尾的字符串。\r
\r
在使用以下代码行之前,请剪掉 的末尾:\r
str
new_file << str << s << "\n";
请看这里 http://www.cplusplus.com/reference/string/string/getline/
评论
1赞
xBurnsed
11/5/2017
固定!多谢。你是对的。我所做的只是添加:str.erase(str.size() - 1);
0赞
Grantly
11/5/2017
很高兴它有帮助。欢迎来到 Stackoverflow :)
评论
push_back()
std::vector<std::string>