d***a 发帖数: 316 | 1 想法是用户输入一个文件名,例如 someresults.txt
然后用ifstream读入,处理后,用ofstream保存为 someresults_data_extracted.txt
用户输入的文件后缀要去掉。
以下是产生问题的部分code,其它省略。
整个程序g++编译通过的。
#include
#include
#include
#include
cout << "Enter the file to work on: ";
string originName;
getline(cin, originName);
// code for ifstream to read a file
…..
char * tempOut = new char [originName.size()+16];
strncpy(tempOut, originName.c_str(), originName.size()-4);
ofstream fout;
fout.open( strcat(tempO... 阅读全帖 |
|
c****p 发帖数: 6474 | 2 你这么做就麻烦了。。
拿到OriginalName之后:
string tempOut = OriginalName + ".......txt";
fout = fopen(tempOut.c_str(),"wt");
...
而且输入文件名其实可以这样。。。
int main(int argc, char* argv[])
{
string OriginName(argv[1]);
...
}
这么做的好处是可以直接在命令行就指令输入文件,
再写个脚本做批处理之类的很方便,
省得每运行一次程序你都得手动输入文件名。
写得再复杂点都可以弄成支持通配符的。【 在 dunfa (蹲着发财) 的大作中提到: 】
txt |
|
Q**a 发帖数: 406 | 3 strncpy之后要给tempOut加一个\0截断
以及用string的substr和+=多简洁
txt |
|