fstream指向特定路径(对于桌面ex)

时间:2014-11-02 11:40:06

标签: c++ fstream

我正在做一个小Cpp控制台应用程序,我在比较两个文件并查看它们是否不同。

我想知道,我如何改变路径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 个答案:

答案 0 :(得分:2)

快速解决问题的方法是改变:

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构造函数的所有这些路径都与您选择的任何路径相关。