回 帖 发 新 帖 刷新版面

主题:急!!vc读文件

各位大侠,帮兄弟个忙,初学vc,不知道如何读取文件。
我需要将下面的点依次连起来(总共约200个,下面的只是一小部分),需要从.txt中读取数据,请问如何才能将这些点的坐标读出来,存储在一个CPoint类的数组中啊!谢了!
1-----------编号
272 95-------------这是所需要读取的点的坐标
2
281 89
3
290 88
4
297 82
5
302 76
6
309 80
7
319 70
8
329 66
9
329 55
10
339 51
11
343 46
12
347 34
13
329 40
14
323 32
15
319 27
16
308 26
17
300 9
18
286 1
19
276 2

回复列表 (共4个回复)

沙发

全是数字的txt,很好处理的.全读到内存中,然后查找空格和换行,空格和换行的ASC2码自己查表吧,我也忘了,呵呵.然后用strchr这个函数去搜空格和换行就行了.二个空格中间的那个字符串再用strtoul(好像是这个函数吧)把字符转成数字就OK了.
如果这些点全是你自己写到TXT文件里,有个更方便的方法.自己写个程序,用二进制方式把这些数字写到txt文件里,定义每个数字占二个字节(可以用unsigned short 类型,取0-65535了)就行了.然后在程序里读取这个文件,二个字节一个数字,很方便的,就不用进行字符的处理了.
只是提供点思路......

板凳


谢谢了,初学,真不知道如何下手,谢了

3 楼

//调试正确。。。
#include "stdio.h"
#define M 300

void main()
{
    FILE *fp;
    int a[M];
    int i=0;
    if ((fp=fopen("zuobiao.txt","r"))==NULL)
    {
        printf("can not open file \n");
        return;
    }
    while (!feof(fp))
    {
        fscanf(fp, "%d",&a[i]);
        printf("%d\n",a[i]);
        i++;
    }
    fclose(fp);
}

4 楼

回一楼,鉴于他的格式很简单可以直接来读取,没必要判断空格。

我来回复

您尚未登录,请登录后再回复。点此登录或注册