有时,当您从文档中复制代码时,它会得到行号和奇怪的引号。我已经编写了一个脚本来删除那些初始数字,但是很难找到一种方法来删除那些奇怪的引号''“”所以我已经包含了我的完整代码。它读入一个文件并输出一个格式化的文件。但是编译器警告说这些引号是多字符,我猜这意味着非标准的 ascii 字符。它有点工作,但它不是一个很好的解决方案。任何帮助表示赞赏:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string replaceChar(string str, char ch1, char ch2);
// Main
int main(int argc, char *argv[]) {
string line;
fstream stri, stro;
// ifstream in
stri.open(argv[1], ios::in);
if(stri.fail()){
cerr << "File failed to open for input" << endl;
return 1;
}
// ofstream out
stro.open("file_out.txt", ios::out);
if(stro.fail()){
cerr << "File failed to open for output" << endl;
return 1;
}
// Read - Write
//stri.get(c);
getline(stri, line, '\n');
while(!stri.eof()){
// Remove numbers
line.erase(0,3);
//line.replace( line.begin(), line.end(), "‘", "\'" );
//line.replace( line.begin(), line.end(), "’", "\'" );
//line.replace( line.begin(), line.end(), "“", "\'" );
//line.replace( line.begin(), line.end(), "”", "\'" );
line = replaceChar(line, '‘','\'');
line = replaceChar(line, '’','\'');
line = replaceChar(line, '“','\"');
line = replaceChar(line, '”','\"');
stro << line << endl;
getline(stri, line, '\n');
}
// Close files
stri.close();
stro.close();
// Output
cout << "File Edited Ok!";
//cout << count -1 << " characters copied."<< endl;
}
string replaceChar(string str, char ch1, char ch2) {
for (int i = 0; i < str.length(); ++i) {
if (str[i] == ch1)
str[i] = ch2;
}
return str;
}