#include<fstream> #include<iostream> #include<string> using namespace std; int main() { ifstream ifs; string a,b; ifs.open("b.txt",ios::in); while(!ifs.eof()) a=a+ifs.get(); ifs.close(); ifs.open("c.txt",ios::in); while(!ifs.eof()) b=a+ifs.get(); ifs.close(); if(a==b) puts("YES"); else puts("NO"); return 0; }
时间: 2024-02-22 11:58:25 浏览: 148
vc++2008编译不了#include<iostream.h>头文件
4星 · 用户满意度95%
这段代码存在一些逻辑错误。第一个文件读取的内容存储在了字符串 `a` 中,第二个文件读取的内容却又存储在了 `a` 中而不是 `b` 中。这样比较的结果一定是相等的,因为比较的是同一个字符串。另外,在第二个文件读取的时候,应该使用 `b+=ifs.get()` 而不是 `b=a+ifs.get()`,因为后者会将字符串 `a` 和读取的字符拼接之后再赋值给 `b`,导致 `b` 中的内容不是第二个文件的全部内容。
改正后的代码如下:
```cpp
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main() {
ifstream ifs;
string a, b;
ifs.open("b.txt", ios::in);
while (!ifs.eof()) {
a += ifs.get();
}
ifs.close();
ifs.open("c.txt", ios::in);
while (!ifs.eof()) {
b += ifs.get();
}
ifs.close();
if (a == b) {
puts("YES");
} else {
puts("NO");
}
return 0;
}
```
阅读全文