如何一行一行地读取文本文件呢?
如何一行一行地读取文本文件中的内容呢?
请给出相关代码? 问题点数:20、回复次数:15Top
1 楼maxsuperkiller(狸猫)回复于 2001-06-18 11:57:00 得分 0
CFile file;
char buffer[102];
file.Open("文件名",CFile::Text);
do
{
file.Read(buffer,100);
strcat(buffer,"/n");
}while(file.IsEof());Top
2 楼vcfresh(fresh)回复于 2001-06-18 12:06:00 得分 0
上面的老兄代码有错,即使用strstr也不能用strcat吧
还有如果一行的buffer超过100,那也是错误的
如何逐行读入数据,有没有比较好的算法呢?Top
3 楼ahphone(阿丰--重出江湖,陌生的容颜)回复于 2001-06-18 12:16:00 得分 0
CStdioFile Class Members
ReadString Reads a single line of text.
WriteString Writes a single line of text.
Top
4 楼attackboy(我像是飘在城市的一片尘埃)回复于 2001-06-18 12:39:00 得分 0
u can use the api function for reading or writting just like an ini fileTop
5 楼waxmxinyu(飞鱼)回复于 2001-06-18 12:50:00 得分 0
用CStdioFile吧,
BOOL CStdioFile::ReadString(CString& rString)
挺好用的。
Top
6 楼waxmxinyu(飞鱼)回复于 2001-06-18 12:52:00 得分 5
CString str;
CStdioFile file;
file.Open("***.***",CFile::modeRead);
file.ReadString(str);Top
7 楼duststar(bug)回复于 2001-06-18 12:55:00 得分 5
#define MAX 999
fstream iof;
char bb[MAX];
iof.getline(bb,MAX);
不需要用vc类裤:)Top
8 楼attackboy(我像是飘在城市的一片尘埃)回复于 2001-06-18 13:06:00 得分 0
请注意:是一行一行的,而不是一行的读。如果要读一行,由于确定不了长度,仅仅需要一个CSTING转换就可以办到!
Top
9 楼wangyi03(西湖上划船的)回复于 2001-06-18 13:20:00 得分 0
用while一个一个字符的读,直到读到回车换行Top
10 楼SmartHeart(女孩其实很傻,不知道谁真的爱她!)回复于 2001-06-18 13:25:00 得分 0
fgets!!!!!Top
11 楼vcfresh(fresh)回复于 2001-06-18 14:30:00 得分 0
CString str;
CStdioFile file;
file.Open("***.***",CFile::modeRead);
file.ReadString(str);
用CStdioFile很好用,但如何判断已经读到文件末尾了呢?Top
12 楼vcfresh(fresh)回复于 2001-06-18 15:01:00 得分 0
??Top
13 楼111222(www.111222.cn)回复于 2001-06-18 15:05:00 得分 10
CString str1,str2;
CStdioFile file;
file.Open("***.***",CFile::modeRead);
while(file.ReadString(str2))
{
str1 = str1 +"/r/n"+ str2;
}
file.Close();
AfxMessageBox(str1);//显示出来
给分吧!!!!
Top
14 楼personnel(无忌)回复于 2001-06-18 15:07:00 得分 0
用feof() 判断文件结束。Top
15 楼aceplus(飞狼0723)回复于 2001-06-18 15:08:00 得分 0
// .h
#include "afxtempl.h"
class CTextDoc : public CDocument
{
...
public:
...
virtual void Serialize(CArchive& ar); // overridden for document i/o
...
public:
//...
CList <CString,CString&> m_text;
...
}
// .cpp
void CTextDoc::Serialize(CArchive& ar)
{
CString str;
if (ar.IsStoring())
{
// TODO: add storing code here
POSITION pos=m_text.GetHeadPosition();
while(pos!=NULL)
{
str=m_text.GetNext(pos);
ar.WriteString(str+CString("/r/n"));
}
}
else
{
// TODO: add loading code here
while(ar.ReadString(str))
{
// 将文本读入m_text
m_text.AddTail(str);
}
}
}
呵呵,我也来充一把大虾!!
Top