该程序基本正确,但存在一个小问题。在最后一次读取字符之后,程序会继续执行一次循环,但此时已经到达文件末尾,因此会将一个无效字符写入目标文件。为了解决这个问题,可以将while循环改为do-while循环,或者在while循环中加入一个额外的判断条件。修改后的程序如下:

#include #include using namespace std;

int main() { char ch; ifstream fp1("s2.dat", ios_base::binary); if (!fp1.is_open()) { cout << "can not open s2.dat\n"; return 0; }

ofstream fp2("d2.dat", ios_base::binary);
if (!fp2.is_open())
{
    cout << "can not open d2.dat\n";
    return 0;
}

do
{
    fp1.get(ch);
    if (ch >= 'A' && ch <= 'Z')
    {
        ch += 32;
    }
    fp2.put(ch);
} while (fp1.good());

fp1.close();
fp2.close();
return 0;
判断下面程序是否正确#include iostream#include fstreamusing namespace std;int main char ch; ifstream fp1s2datios_basebinary; if !fp1is_open coutcan not open s2datn; return 0; of

原文地址: https://www.cveoy.top/t/topic/fFrG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录