首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fstream指向特定路径(指向桌面实例)。

fstream指向特定路径(指向桌面实例)。
EN

Stack Overflow用户
提问于 2014-11-02 11:40:06
回答 1查看 57关注 0票数 1

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

我想知道,我怎样才能改变路径,像C:\Users\%user%\Desktop\tekst1.txt,我应该在哪里这样做呢?因为我试图搜索它,但我找不到它。

它是“用C++解决工程问题”一书中的一个应用程序。

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-02 11:45:49

一个快速的、肮脏的解决方案是改变:

代码语言:javascript
复制
const string AFIL = "tekst1.txt";
const string BFIL = "tekst2.txt";

至:

代码语言:javascript
复制
const string AFIL = "C:\\Users\\%user%\\Desktop\\tekst1.txt";
const string BFIL = "C:\\Users\\%user%\\Desktop\\tekst2.txt";

您还可以尝试阅读更改流程的当前工作目录(针对操作系统的,请参阅获取相应的简单Win32 API)。然后,传递给fstream构造函数的所有这些路径都将相对于您选择的任何路径。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26698881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档