2014-11-02 66 views
1

我正在做一個小小的Cpp控制檯應用程序,我在比較兩個文件並查看它們是否不同。fstream指向特定路徑(到桌面前)

我想知道,我怎麼可以改變路徑像C:\Users\%user%\Desktop\tekst1.txt 我在哪裏做的?因爲我試圖谷歌它,我無法找到它。

它從書的申請 「工程問題,使用C解決++」

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

const string AFIL = "tekst1.txt"; 
const string BFIL = "tekst2.txt"; 
const char NEWLINE = '\n'; 


int main() 
{ 
    char a, b; 
    int linje = 1, forskellige = 0, linje_flag = 0; 
    ifstream afil, bfil; 

    afil.open(AFIL.c_str()); 
    if (afil.fail()){ 
     cerr << AFIL << " kan ikke åbnes\n"; 
     exit(1); 
    } 
    bfil.open(BFIL.c_str()); 
    if (bfil.fail()){ 
     cerr << BFIL << " kan ikke åbnes\n"; 
     exit(1); 
    } 

    afil.get(a); 
    bfil.get(b); 

    while ((!afil.eof()) && (!bfil.eof())) 
    { 
     if (a != b) 
     { 
      forskellige++; 
      linje_flag = 1; 
      while (a != NEWLINE && !afil.eof()) 
       afil.get(a); 
      while (b != NEWLINE && !bfil.eof()) 
       bfil.get(b); 
      cout << "Filerne er forskellige i linie: " << linje << endl; 
     } 

     if (a == NEWLINE) 
     { 
      linje++; 
     } 
     afil.get(a); 
     bfil.get(b); 

    } 
    if ((afil.eof()) != (bfil.eof())) 
    { 
     cout << "Filerne er forskellige i sidste karakter: " << linje << endl; 
     forskellige++; 
    } 
    if (forskellige == 0) 
     cout << "Filerne er ens\n"; 


    afil.close(); 
    bfil.close(); 
    system("pause"); 
    return 0; 
} 
+1

'while((!!afil.eof())&&(!bfil.eof()))'注意:http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop - 情況考慮錯誤 – 2014-11-02 11:44:16

+0

我沒有得到它,在另一個線程。請解釋。 – user1098185 2014-11-02 11:49:37

+0

關於_很難理解什麼?「因爲iostream :: eof只會在讀完流後結束。」_。 – 2014-11-02 11:51:20

回答

2

快速N」骯髒的解決辦法是改變:

const string AFIL = "tekst1.txt"; 
const string BFIL = "tekst2.txt"; 

要:

const string AFIL = "C:\\Users\\%user%\\Desktop\\tekst1.txt"; 
const string BFIL = "C:\\Users\\%user%\\Desktop\\tekst2.txt"; 

您也可以嘗試閱讀更改過程的當前工作目錄(特定於操作系統,請參閱this爲相應的簡單Win32 API)。然後,傳遞給fstream構造函數的所有這些路徑將與您選擇的任何相關。

+0

謝謝,它工作!我的錯... :-) – user1098185 2014-11-02 11:57:47