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对应的学科是语文呢?
求解
展开
 我来答
198901245631
推荐于2017-10-03 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1685万
展开全部
#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;
}
琳宝玩乐
2013-07-27
知道答主
回答量:12
采纳率:0%
帮助的人:6.4万
展开全部
outstuf.write(number.c_str(),number.length());
改为
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就是换行
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大塞弗life
2013-07-26
知道答主
回答量:33
采纳率:0%
帮助的人:13.8万
展开全部
\n 这个是换行符 输出换行符就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyklau
2013-07-27 · TA获得超过192个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:104万
展开全部
使用函数 sprintf(“\n”)
更多追问追答
追问
能详细点么,以前没见过这个函数,这个函数能连续插入多组数据么,以前我用过换行的,但却只能插入一组数据
追答
sprintf 这个函数用来格式换字符串,利用这个函数 将 换行 “\n” 格式到你的字符串中,然后使用 fwirte函数 将 此字符串写入到 文件中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
123qazxc3210
2013-07-26
知道答主
回答量:3
采纳率:0%
帮助的人:4.6万
展开全部
<<endl 这个可以换行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式