Re: [问题] DevC++期末求助

楼主: yuanyu90221 (菜菜鸟)   2014-06-12 23:11:27
※ 引述《HelloTony (嗨东尼)》之铭言:
: 老师要我们用DevC++打一个可以写信的cord
: 可以读取一个test.txt档
: 其中有4个人(2男2女)的名字和4个人的email
: 要把它printf到另一个out.txt档中
: 其中”王大明“要改成”王先生”(小姐依此类推)
: 再把email也printf出来
: 然后要加入信的内容
: 大致上知道要用fgets.strcpy.strcat……
: 但是不知道如何下手QAQ
: 再四天就要交了
: 但是也想搞懂啊~~
: 还有请各位帮忙了谢谢
刚刚下班看到这题
小弟不才 想说来解看看这题
请各位版大对我的解法 不吝指教 感恩
回到正题
其实原PO 这题的解法 端看
Data 端 的资料长的如何
我假设 原PO 所说的 test.txt 及 output.txt的格式如下:
//test.txt
王晓明 男 smallming@gmail.com
无全顺 女 nopassall@hotmail.com
张晓岚 女 lan@as.com
//output.txt
王先生 smallming@gmail.com
无小姐 nopassall@hotmil.com
张小姐 lan@as.com
则 小弟私以为 可以直接用fstream
一行一行处理
source code 如下:
// File Name : FILEIO.cpp
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
//用来读取 Data的struct
typedef struct{
string name;
string gender;
string email;
}email_entry;
// main function
int main(){
email_entry input_s;
string output_s;
fstream filein,fileout;
filein.open("D:\\test.txt",ios::in|ios::binary);
fileout.open("D:\\output.txt",ios::out|ios::binary);
if(filein==NULL)
{
cerr <<"filein 档案开启失败" << endl;
exit(1);
}
if(fileout==NULL)
{
cerr << "fileout 档案开启失败" << endl;
exit(2);
}
while(!filein.eof())//尚未到档案尾端
{
//variable initialized
input_s.name ="";
input_s.gender="";
input_s.email="";
output_s ="";
// input string with filein fstream
filein >> input_s.name >> input_s.gender >> input_s.email;
cout <<"从档案读入资料: " << input_s.name << " "
<< input_s.gender << " "
<< input_s.email << endl;
// reset input_s.gender
if(input_s.gender.compare("男")==0)//如果是男
input_s.gender ="先生";
else //假设只有两种性别的话
input_s.gender ="小姐";
//假设名字是中文
output_s +=input_s.name.substr(0,sizeof(wchar_t));
output_s +=input_s.gender;
output_s +=input_s.email;
cout <<"以输入档案资料 : " << output_s << endl;
fileout << output_s<<endl;
}// while end
filein.close();
fileout.close();
}//main end
以上再假设为format data的用fstream 存取
用这个方式要注意的是EOF需在最后一笔资料的尾端
以及 fstream 的<< operator每次输入 只到前一whitespace (0x20)
这是小弟想到的解法
如有错误 请各位大大不吝指教 XD
楼主: yuanyu90221 (菜菜鸟)   2014-06-12 23:18:00
一直漏打 = =
作者: diabloevagto (wi)   2014-06-13 00:40:00
你要四天后再po文
作者: CaptainH (Cannon)   2014-06-13 02:10:00
....
作者: getaway (夏天快走!!!)   2014-06-13 03:01:00
私以为你真要帮他,可以解析教他以自己能力写一份60分的作业,建立信心,想高分且看他自己愿意多投入多少
作者: damody (天亮damody)   2014-06-13 04:29:00
帮他不要害他好吗~
作者: longlongint (华哥尔)   2014-06-13 05:11:00
ㄏㄏ
作者: firejox (Tangent)   2014-06-13 09:25:00
送UTF-8的data 就悲剧了~
作者: xvid (DivX)   2014-06-13 20:08:00
这出题者用中文词来当考题给初学者感觉不大妥
作者: bachelorwhc (单身老王)   2014-06-13 20:39:00
不要害我没生意做
作者: firejox (Tangent)   2014-06-13 20:51:00
同意x大 还要考虑编码的问题
楼主: yuanyu90221 (菜菜鸟)   2014-06-13 21:15:00
谢谢各位的指教 小弟知错了 囧 UTF-8的确 会出问题

Links booklink

Contact Us: admin [ a t ] ucptt.com