编写C++程序完成以下功能: (1) 输入一个文本文件名; (2) 打开文件名,在该文件的每一行前面加行号

 我来答
水晶扇
2010-09-14 · TA获得超过1536个赞
知道大有可为答主
回答量:837
采纳率:100%
帮助的人:1105万
展开全部
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;

int main(int argc, char* argv[])
{
char m_stFileName[256];
char buf[2048];
ifstream fin;
ofstream fout;
stringstream sout;

cin.getline(m_stFileName,255);
if(strlen(m_stFileName)==0)
{
cout<<"请输入文件名!"<<endl;
//MessageBox("请输入文件名或选取文件!");
return 0;
}
int num=1;
fin.open(m_stFileName,ios::in);
while(!fin.eof())
{
fin.getline(buf,2047);
sout<<num<<"\t"<<buf<<endl;
cout<<"正在处理第"<<num<<"行"<<endl;
num++;
//m_stShow.Format("正在处理第%3d行",num);
//UpdateData(FALSE);
}
cout<<"正在准备输出到文件..."<<endl;
//m_stShow="正在准备输出到文件...";
//UpdateData(FALSE);
fin.close();

//m_ctrlPro.SetRange(0,num);
//m_ctrlPro.SetPos(0);

num=1;
fout.open(m_stFileName,ios::out);
while(!sout.eof())
{
sout.getline(buf,2047);
fout<<buf<<endl;
cout<<"正在输出第"<<num<<"行"<<endl;
num++;
//m_stShow.Format("正在输出第%3d行",num);
//m_ctrlPro.SetPos(num);
//UpdateData(FALSE);
}
//m_ctrlPro.SetPos(0);
fout.close();
return 1;
}
注释部分是窗口模式下的句子。特意改成控制台模式。

运行效果:

1 白羊座女性最适合的英文名字:
2 Malcolm 、Joan、Niki、Betty、Linda、Whitney、Lily
3
4 金牛座男性最适合的英文名字:
5 Fred、Gary、William、Charles、Michael、Karl
6
7 金牛座女性最适合的英文名字:
8 Barbara、Elizabeth、Helen、Katharine、Lee、Ann、Diana、Fiona
9
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式