c++(1)输入一个文本文件名; (2)打开文件名,在该文件的每一行前面加上一个行号,保存在另外一个文本文件中.
#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd...
#include <iostream>
#include <fstream>
#include <string>
#include<iomanip>
using namespace std;
main()
{
string name,str;
int i=1;
char ch;
cout<<"请输入要打开的文件名:";
getline(cin,name);
fstream in(name);
ofstream("test.txt");
while(getline(in,str))
{
out<<i<<"\t"<<str<<endl;
i++;
}
return 0;
}
以上是代码,我不知道输入文件名那里该怎么做,求高手解答 展开
#include <fstream>
#include <string>
#include<iomanip>
using namespace std;
main()
{
string name,str;
int i=1;
char ch;
cout<<"请输入要打开的文件名:";
getline(cin,name);
fstream in(name);
ofstream("test.txt");
while(getline(in,str))
{
out<<i<<"\t"<<str<<endl;
i++;
}
return 0;
}
以上是代码,我不知道输入文件名那里该怎么做,求高手解答 展开
3个回答
展开全部
#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
#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
追问
这段代码我也看了,但是输入文件名那点看不太懂,能解释下吗?
展开全部
getline(cin,name); cin的名字 放到了name里了 就是对name进行的操作
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得输入文件名那里是对的啊。。。有什么问题
追问
[Error] cpp:14: error: no matching function for call to `std::basic_fstream >::basic_fstream(std::string&)'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询