如何向一个文本文件写入,读出内容?在线等!
请问各位高手,怎么向文本文件写入自己程序中的内容呢?文本文件是自己创建的,要一行一行的写进去,读的时候也要一行一行的读出来。因为读出数据时,要根据内容做图,所以写入时我应该怎么设置格式?有点类似从数据库读东西,如
X Y
12 2
这样的结构。请高手指教!
问题点数:20、回复次数:11Top
1 楼lluollei(lei)回复于 2004-09-04 15:04:55 得分 0
c语言有专门的函数,看看就知道了,getline()之类的,fprintf()可以实现写入、\t可以实现分列,\r\n实现换行Top
2 楼lzol(征征)回复于 2004-09-04 15:08:38 得分 0
我是用VC做的,想问问VC中哪个类里可以实现这些操作!Top
3 楼wonhao(沧海一鼠)回复于 2004-09-04 16:24:57 得分 0
期待。。。Top
4 楼sevenking(人类之逍遥)回复于 2004-09-04 16:49:35 得分 0
FILE *hFile = NULL;
char *pszData = NULL;
char *chpBuf = NULL;
pszData = new char[128];
strcpy(pszData,"File");
char *pszFilename = NULL;
pszFilename = new char[131];
sprintf(pszFilename,"%s.txt",pszData);
hFile = fopen( pszFilename, "a" );
if( hFile != NULL )
{
int iend = lseek((int)hFile,0L,SEEK_END);
fwrite( pszBuf, memlen(pszBuf), 1, hFile );
fclose( hFile );
}
读用 fread();
Top
5 楼csp22(brutal)回复于 2004-09-04 16:55:52 得分 0
CStdioFile类就可以。Top
6 楼auly403(卡西*丁布)回复于 2004-09-04 17:00:01 得分 10
void CInterfaceDlg::ReadIniFile(CString m_FindString)
{
int i;
CStdioFile m_IniCombo2;
CString buf;
int nSubItem;
CFileException e;
if(m_IniCombo2.Open( "C:\\Combo2.ini", CFile::modeRead, &e ) )
{
while(m_IniCombo2.ReadString(buf))
{
if(buf==m_FindString)
{
m_IniCombo2.ReadString(buf);
nSubItem=atoi(buf);
for(i=0;i<nSubItem;i++)
{
m_IniCombo2.ReadString(buf);
m_ComboBox2.AddString(buf);
m_IniCombo2.ReadString(buf);
}
break;
}
}
m_IniCombo2.Close();
}
}Top
7 楼liulibo11119(跑)回复于 2004-09-04 17:05:17 得分 5
同意csp22(brutal)
用StdioFile
StdioFile sf;
sf.WriteString("fdsaf\r\n");
要有这个 "\r\n"
否则不能换行,
Top
8 楼betsyalan(alan)回复于 2004-09-04 17:35:09 得分 5
CFile,CStdioFile都可以,关键是你设计好你的数据,要读的时候能自己识别出相应的数据。
例如你需要这样的结构
X Y
12 2
那么你需要在数据之间加标识符号例如可以用"#"或者其他的。写的时候就写成这样
X#Y
12#2
读的时候一行一行的读,然后分出来就可以了。Top
9 楼lzol(征征)回复于 2004-09-05 12:06:18 得分 0
betsyalan(alan) 大哥的意见最有建设性,本来这个问题我是想下次再提的。多谢各位大哥了。Top
10 楼allenq(黑夜给我黑的眼, 我却用他来翻白眼..........)回复于 2004-09-05 12:18:30 得分 0
fprintf
和fread就可以实现的.Top
11 楼evilgod()回复于 2004-09-05 14:12:55 得分 0
用CArchive类应该也可以吧Top




