第十四周项目4 - 处理C++源代码的程序({}换行)

本文介绍了一个项目,旨在读取C++源代码,将所有左花括号'{'和右花括号'}'独立成行并保存到新的.cpp文件,同时在屏幕上显示处理后的代码并附带行号。作者在实践中遇到了getline函数使用问题,提醒读者在开始项目前重温相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(2)读入一个C++程序,使程序中的所有左花括号“{”和右花括号“}”都单独占一行,新程序保存到另一个.cpp文件中,并在屏幕上显示处理过的程序,显示时加上行号。

#include <iostream>
#include <cstdlib>
#include <fstream>
#include <cstring>
using namespace std;
int main()
{
    char ch1='\0',ch2,out[256];
    int i=0;
    ifstream infile("source.cpp",ios::in);
    //测试是否成功打开,打开失败时(如要读的数据文件不存在)退出
    ofstream outfile("out.cpp",ios::out);
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    if(!outfile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    while(!infile.eof())
    {
        infile.get(ch2);
        if((ch2=='{'||ch2=='}')&&(ch1!='\n'))
            outfile<<'\n';
        else if((ch1=='{'||ch1=='}')&&(ch2!='\n'))
            outfile<<'\n';
        outfile<<ch2;
        ch1=ch2;
    }
    infile.close();          //读入完毕要关闭文件
    outfile.close();
    ifstream view("out.cpp",ios::in);
    if(!view)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    while(!view.eof())
    {
        view.getline(out,255,'\n');
        cout<<out<<endl;
    }
    return 0;
}
图片:


心得:

ORZ。。。忘记getline的终止符是不会输出的了,果然还是应该在做项目之前再看看视频,都忘了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值