文件读取和list , vector容器问题

bettyalice 2003-08-18 06:57:33
1,如果我想读取文件,文件的每行均只有一实数,每次只读一行,并将其内容放入一DOUBLE数组
中.应使用那些相关的函数(读文件的一行的函数及判断回车符的函数,读进的数据类型是什么
)

2我想运用list容器,但是看了书后发现不知如何显示其元素;以及我将书<C++ Premier>中977页的源程序敲入,提

出错信息:Command line error:cannot open "c:\windows\TEMP\RSPA361.TMP"

3以前在使用向量vector容器时,按书中所说敲入源代码,并在头文件中加入#include <vecto
r
>,但仍出错提示:"给定向量未定义,且迭代器iterator使用不正确"

...全文
78 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohedou 2003-12-11
  • 打赏
  • 举报
回复
要先读crln,改为:
f3.SeekToBegin();
ZeroMemory(buf, sizeof(buf));
//读crln
f3.ReadString( buf, sizeof(buf) );
//读一行
f3.ReadString( buf, sizeof(buf) );
//再读一行
f3.ReadString( buf, sizeof(buf) );

//读结构
ZeroMemory((char *)&myData,sizeof(myData));
f3.Read((char *) &myData, sizeof(myData));
xiaohedou 2003-12-11
  • 打赏
  • 举报
回复
应 bettyalice() 而作:

typedef struct {
int iSomeVal;
double fSomeVal;
char chSomeVal[12];
} SOMEDATA;
char buf[64];

void CMy444Dlg::OnCstdfile()
{
SOMEDATA myData;
CStdioFile f3;
CFileFind cf;
char* pFileName = "test.txt";
UINT uiOpFlag=CFile::modeReadWrite | CFile::typeText ;

SetCurrentDirectory("c:\\");
if(!cf.FindFile(pFileName,0))
uiOpFlag |=CFile::modeCreate;

TRY
{
f3.Open( pFileName,uiOpFlag );
}
CATCH( CFileException, e )
{
#ifdef _DEBUG
afxDump << "File could not be opened! "
<< e->m_cause << "\n";
#endif
}
END_CATCH
/* 这两个函数处理按行读写
ReadString Reads a single line of text.
WriteString Writes a single line of text.
*/

//先写一行
char pTitle[]="012345This is test lines...";
char crln[3]={0x0d,0x0a,0};
f3.SeekToEnd();
f3.WriteString( crln );
ZeroMemory(buf,sizeof(buf));
memcpy(buf,pTitle+6,strlen(pTitle)-6);
strcat(buf,crln);
f3.WriteString( buf );
int len=strlen(pTitle);
pTitle[len-2]=0x0d;
pTitle[len-1]=0x0a;
f3.WriteString( pTitle );

//写一个结构
myData.iSomeVal=1;
myData.fSomeVal=12.56;
ZeroMemory(myData.chSomeVal,sizeof(myData.chSomeVal));
memmove(myData.chSomeVal,"12345678",sizeof(myData.chSomeVal));
f3.Write((char *)&myData,sizeof(myData));
f3.Flush();

f3.SeekToBegin();
//读一行
ZeroMemory(buf, sizeof(buf));
f3.ReadString( buf, sizeof(buf) );
//再读一行
f3.ReadString( buf, sizeof(buf) );

//读结构
ZeroMemory((char *)&myData,sizeof(myData));
f3.ReadString((char *) &myData, sizeof(myData));

f3.Close();
}
bettyalice 2003-09-05
  • 打赏
  • 举报
回复
揭贴:小黑豆50
bettyalice 2003-08-20
  • 打赏
  • 举报
回复
xiaohedou:能给出一个用你所说的结构体组织和常规方法实现的代码吗?
bettyalice 2003-08-19
  • 打赏
  • 举报
回复
大家来看看这个基础概念吧
有解释者一律有分。
laodie 2003-08-19
  • 打赏
  • 举报
回复
up
xiaohedou 2003-08-19
  • 打赏
  • 举报
回复
1.记得文件的读取在DOS 时代用过open()/fread/fwrite/fput/fget,当时用fread读取制定%2.1f就可以直接读取,没有回车问题。我是把数据组织为一个结构体,按结构体写入读出。如果按常规的方法就需要判断特出字符了!不过也无所谓,先读到一个大的缓冲区,用指针作判断就行!

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧