编写一个程序,可以读入一个c++源文件,每一行加上行号后保存到另一个后缀为.prn的同名文件中
展开全部
你好!看到你写的是读取一个C++源程序,所以我用C++做了一个,也重新学习了一下c++对文件的操作,谢谢。
#include <fstream>
#include <string>
#include<iostream>
using namespace std;
int main()
{
string s,name,name1;
cout<<"请输入源c++文件的名称(不含有后缀名):";
cin>>name;
name1=name+".prn";
name+=".cpp";
ifstream read(name.c_str());//读取的文件,用name.c_str()是将string 的char *类型转换成const的类型,不然会出错
fstream write;
write.open(name1.c_str(),ios::trunc/*创建文件*/|ios::out/*写文件*/);//输出的文件,创建文件并写文件
int i=0;
if(!read)
{
cout<<"Cannot open input file\n";
return 0;
}//如果打开输入文件失败
if(!write)
{
cout<<"Cannot open output file\n";
return 0;
}//如果打开输出文件失败
while (getline(read,s))//逐行读取文件中数据到字符串s中
write<<++i<<s<<endl;//输出读取文件的信息到目标文件
read.close();
write.close();//关闭文件
cout<<"目标文件生成成功!(和源文件同目录)"<<endl;
return 0;
}
#include <fstream>
#include <string>
#include<iostream>
using namespace std;
int main()
{
string s,name,name1;
cout<<"请输入源c++文件的名称(不含有后缀名):";
cin>>name;
name1=name+".prn";
name+=".cpp";
ifstream read(name.c_str());//读取的文件,用name.c_str()是将string 的char *类型转换成const的类型,不然会出错
fstream write;
write.open(name1.c_str(),ios::trunc/*创建文件*/|ios::out/*写文件*/);//输出的文件,创建文件并写文件
int i=0;
if(!read)
{
cout<<"Cannot open input file\n";
return 0;
}//如果打开输入文件失败
if(!write)
{
cout<<"Cannot open output file\n";
return 0;
}//如果打开输出文件失败
while (getline(read,s))//逐行读取文件中数据到字符串s中
write<<++i<<s<<endl;//输出读取文件的信息到目标文件
read.close();
write.close();//关闭文件
cout<<"目标文件生成成功!(和源文件同目录)"<<endl;
return 0;
}
展开全部
C++?那就自己写个readline和writeline函数,C#自己有,具体就是读文件直到读到"\r\n"为一行,写就多加"\r\n",第一行计数变量加一然后用sprintf将数字转成char,写入文件就OK,依次readline,writeline直到文件结尾
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的写得很清楚了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询