我在嘗試一個文本文件中的內容複製到另一個基於命令行參數寫這個文件:複製與C++流
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
int main(int argc, char* argv[]) {
if(argc != 3) {
cout << "invalid args!";
return 0;
}
fstream op(argv[1], ios::in);
vector<string> list;
string line;
while(!op.end)
op >> line;
list.push_back(line);
op.close();
op.open(argv[2], ios::out);
for(unsigned int i = 0; i < list.size(); i++)
op << list[i];
op.close();
return 0;
}
它不會產生任何語法錯誤,但邏輯錯誤是顯而易見的:沒有輸出。
因此,除了缺少錯誤檢查以及有更高效的方法來做到這一點外,我的代碼有什麼問題?即爲什麼它不會將名稱爲argv[1]
的文件複製到名爲argv[2]
的文件?
因此流操作符使用空格作爲分隔符? – Dziugas 2015-02-07 15:52:34
是的,任何空間(包括標籤,換行符等等) – Christophe 2015-02-07 15:53:22