2012-04-10 164 views
0
#include <iostream> 
    #include <fstream> 
    #include <string> 
    using namespace std; 

    // Main Routine 

    void main() { 
     char in; 
     string s,m; 
     fstream f; 

    // Open file 
     cout << "Positive Filter Program\n"<< endl; 
     cout << "Input file name: "; 
     cin >> s; 
     cout << "Output file name: "; 
     cin >> m; 
     f.open(s.data(),ios::in); 
     f.open(m.data(),ios::out); 

    // Loop through file 

    if(f.is_open()) 
    { 
     while(f.good()) 
     { 
      f.get(in); 
      f<<in; 
      cout << "\nFinished!"<< endl; 
     } 
    } 
    else cout << "Could not open file"; 

    // Close file 
    f.close(); 

    } 

我不知道我在做什麼錯在這裏。在這個項目中我試圖CIN的文件名會輸入,然後將輸出到您在鍵入的內容文件名在C++中輸入/輸出文件

+0

什麼是你面對這個代碼的問題? – Naveen 2012-04-10 10:29:30

+1

您正在使用一個'fstream'對象?你不想要一個輸入和*另一個*輸出? – trojanfoe 2012-04-10 10:33:03

回答

3

同樣fstream對象被重複使用。

f.open(s.data(),ios::in); 
f.open(m.data(),ios::out); 

它永遠不會讀取輸入文件。更改爲:

std::ifstream in(s.data()); 
std::ofstream out(m.data()); 

while循環不正確,讀取嘗試的結果,應立即讀取後檢查:

char ch; 
while(in.get(ch)) 
{ 
    out << ch; 
} 
cout << "\nFinished!"<< endl; // Moved this to outside the while 
+0

謝謝,這有幫助! – MIkey27 2012-04-12 03:51:27