c++写入文件的时候怎么可以一行一行的写入
--------------------------------------------------代码---------------------------------...
--------------------------------------------------代码-----------------------------------------------------------------------------
#include<iostream>
#include <fstream>
#include<conio.h>
#include"head.h"
using namespace std;
#include <string>
#include <string.h>
void zhuce()
{ system("cls");
string number;
ofstream outstuf ;
outstuf.open( "test.txt" , ios::app|ios::binary) ;
if ( !outstuf )
{ cerr << "文件不存在" << endl ; abort(); }
cout<<"请输入您的学号:"<<endl;
cin>>number;
char str1 [ 20 ];
ifstream in ( "test.txt" ) ;
if ( ! in ) { cout << "文件不存在" ; };
for(int i=1;!in.eof();i++)
{
in >> str1;
if(!strcmp(str1,number.c_str()))
{
cout<<"账号存在"<<endl;
break;
}
else
{
cout<<"账号注册成功"<<endl;
number+=" ";
outstuf.write(number.c_str(),number.length());
outstuf.close();
break;
};
}
char a;
a=getch();
switch(a)
{
case '1':denglu();break;
case '2':yemian();break;
}
}
比如我写入学号:123456;然后选择:语文;入学号:789123;然后选择:数学;
在txt里面显示的是:
123456 语文
789123 数学
学科选择的写入上面代码没有,也不知道怎么写,谁能帮下忙,而且这样
在txt里面显示的是:
123456 语文
789123 数学
然后要怎么样才使得学号和学科一样对应,比如我输入学号123456,就能在科目显示123456对应的学科是语文呢?
求解 展开
#include<iostream>
#include <fstream>
#include<conio.h>
#include"head.h"
using namespace std;
#include <string>
#include <string.h>
void zhuce()
{ system("cls");
string number;
ofstream outstuf ;
outstuf.open( "test.txt" , ios::app|ios::binary) ;
if ( !outstuf )
{ cerr << "文件不存在" << endl ; abort(); }
cout<<"请输入您的学号:"<<endl;
cin>>number;
char str1 [ 20 ];
ifstream in ( "test.txt" ) ;
if ( ! in ) { cout << "文件不存在" ; };
for(int i=1;!in.eof();i++)
{
in >> str1;
if(!strcmp(str1,number.c_str()))
{
cout<<"账号存在"<<endl;
break;
}
else
{
cout<<"账号注册成功"<<endl;
number+=" ";
outstuf.write(number.c_str(),number.length());
outstuf.close();
break;
};
}
char a;
a=getch();
switch(a)
{
case '1':denglu();break;
case '2':yemian();break;
}
}
比如我写入学号:123456;然后选择:语文;入学号:789123;然后选择:数学;
在txt里面显示的是:
123456 语文
789123 数学
学科选择的写入上面代码没有,也不知道怎么写,谁能帮下忙,而且这样
在txt里面显示的是:
123456 语文
789123 数学
然后要怎么样才使得学号和学科一样对应,比如我输入学号123456,就能在科目显示123456对应的学科是语文呢?
求解 展开
5个回答
展开全部
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void main()
{
//读取1.txt全部内容
ifstream ifs("1.txt");//如果需要,请修改文件路径
if(!ifs)
{
cout<<"文件打开失败!";
return;
}
char ch[100];
while (!ifs.eof())
{
ifs.getline(ch,100);
cout<<ch<<endl;
}
ofstream ofs("2.txt");
outstuf>>number.c_str()>>" ">>"写入的内容">>endl;
}
#include <fstream>
#include <string>
using namespace std;
void main()
{
//读取1.txt全部内容
ifstream ifs("1.txt");//如果需要,请修改文件路径
if(!ifs)
{
cout<<"文件打开失败!";
return;
}
char ch[100];
while (!ifs.eof())
{
ifs.getline(ch,100);
cout<<ch<<endl;
}
ofstream ofs("2.txt");
outstuf>>number.c_str()>>" ">>"写入的内容">>endl;
}
展开全部
outstuf.write(number.c_str(),number.length());
改为
outstuf>>number.c_str()>>" ">>"语文">>endl;//endl就是换行
改为
outstuf>>number.c_str()>>" ">>"语文">>endl;//endl就是换行
更多追问追答
追问
这种方式我以前试过的,但是这种方式只能输入一行,比如第一次输入123,第二次输入456的时候。456会覆盖掉123的
追答
outstuf>>number.c_str()>>" ">>"语文">>endl;//endl就是换行
更改为
outstuf.seekg(0,ios::end); //多这名,文件指针移到尾
outstuf>>number.c_str()>>" ">>"语文">>endl;//endl就是换行
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
\n 这个是换行符 输出换行符就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用函数 sprintf(“\n”)
更多追问追答
追问
能详细点么,以前没见过这个函数,这个函数能连续插入多组数据么,以前我用过换行的,但却只能插入一组数据
追答
sprintf 这个函数用来格式换字符串,利用这个函数 将 换行 “\n” 格式到你的字符串中,然后使用 fwirte函数 将 此字符串写入到 文件中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询