我正在做一个小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;
}
答案 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
构造函数的所有这些路径都与您选择的任何路径相关。