我的数据文件如下(input.dat)
100 2323
123 2090
344 3434
343 3454
344 4545
434 3434
我的代码如下
CString path;
CFileDialog filedlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,NULL);
if(filedlg.DoModal() == IDOK)
{
path = filedlg.GetPathName();
int data;
CFile File;
File.Open(path,CFile::modeRead);
UINT uCount = File.Read(&data,sizeof(int));
int Line = 0;
CDC *pDC = GetDC();
while(uCount == sizeof(int))
{
char str[10];
sprintf(str,"%d",data);
pDC->TextOut(0,Line,str,sizeof(str));
Line += 15;
}
}
为什么不对呢?难道CFile只能读字符串的文件吗?
请高手给一段示范代码
100 2323
123 2090
344 3434
343 3454
344 4545
434 3434
我的代码如下
CString path;
CFileDialog filedlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,NULL);
if(filedlg.DoModal() == IDOK)
{
path = filedlg.GetPathName();
int data;
CFile File;
File.Open(path,CFile::modeRead);
UINT uCount = File.Read(&data,sizeof(int));
int Line = 0;
CDC *pDC = GetDC();
while(uCount == sizeof(int))
{
char str[10];
sprintf(str,"%d",data);
pDC->TextOut(0,Line,str,sizeof(str));
Line += 15;
}
}
为什么不对呢?难道CFile只能读字符串的文件吗?
请高手给一段示范代码
你需要按照字符串的方式按行读取,然后使用sscanf把字符串转换成为数字就可以了
但是怎么知道一个数字的位数呢?
比如
3434 343443
23 45454
如果
File.Read(str,4);
对第二行读得又不对了。
读的是四个字节的整形数,而不是字符串数字,
可以用一行一行的读,然后分析