我用vc想读取一个文本文件中的数据
数据是再文本文件中是这样存在的
1 -1 1 1 1
1 0 0 1 1
1 1 1 0 1
我想知道怎么能够判断数据是第一行还是第二行!
数据是再文本文件中是这样存在的
1 -1 1 1 1
1 0 0 1 1
1 1 1 0 1
我想知道怎么能够判断数据是第一行还是第二行!
解决方案 »
- 求个工具-查看线程内存使用情况
- cannot open file "jsk20_dlg.lib"
- 关于利用钩子消息,获取字符的问题?
- 关于类型转换问题
- 对操作系统来说端口的真正意思什么?
- 谁能提供小波去噪声或者小波检测突变信号的c代码,谢谢!
- 高分请教发送事件方法。。。。HELP...HELP...HELP...HELP...HELP...急。。。。急。。。。。。
- vc++和sql server的结合编程
- vs2008中无法使用MSCOMM,在线等!
- 请问在VC中CDC有什么函数可以用来在OnDraw中清屏,即将CView类窗口恢复纯白。
- 请教一下如何把bcb下的lib文件转成vc下可用的lib
- 一个乱码处理的问题,明天上午要交货,急!
用函数ReadString()来读取一行数据,
自己做过计数器来计数就行了。
比如
1 -1 1 1 11 0 0 1 1
1 1 1 0 1
有空行就不好办,最好是你根据文件行的特点用计数器计数。如果是自己程序产生的文件,最好的办法是在每行记录前加上16进制的行号。
如果每行数据是一样多的还可以每行输出16个数据,然后每行前加上该行第一个数据序号的。
如:
0x00 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1
0x10 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
0x20 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1
这样可以方便的得到每个数据的位置,而且每行前面哪个数字n>>4就是行号,哈哈~!
calss myData{
string sData;
int nLine;
}int n = 0;
myData datas[100];
open file (f);
while(iseof(f))
{
string sLine = readline(f);
if (sLine.IsEmpty())
continue;
datas[n].sData = sLine;
datas[n].nLine = n+1;
}
if( !file.Open("d:\\1.txt", CFile::modeRead) )
{
AfxMessageBox("can not open file!");
return;
}
CString strLine, strTemp;
int nLine=0;
while( file.ReadString(strLine) )
{
nLine++;
}
file.Close();
没看明白,怎么能确定每个数据位置啊!
比如我就要取3行4列那个数,怎么取啊1
{
if( !pFileName )
return -1; FILE*fp=fopen(pFileName,"r");
if( !fp )
return -1; long nCount=0;
char ch;
while((ch=fgetc(fp) ) != EOF )
{
if( ch == '\n' ) nCount++;
}
return nCount;
}
fseek(pf,0,SEEK_SET);
int iLines=0; //行数
char c[1024];
while(!feof(ph))
{
iLines++;
fgets(c,100,pf);
}
fclose(pf);
trim得到的结果看是不是空行;
不断find空格自己拆分每行。如果是自己写的程序,直接用carchive对象读写就不用这么麻烦了