LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1102|回复: 3

tc下可以,gcc下不可以

[复制链接]
发表于 2002-12-14 21:14:39 | 显示全部楼层 |阅读模式
这是我写的程序,在tc下可以正确的运行。但在gcc在却不行。为什么?
我的程序和test.txt文件都存在一个文件夹下。原码如下。
#include <stdio.h>
main()
{
        FILE *pf;
        int i,a[10],*pi;
        for(i=0;i<10;++i)
                a=i;
        pf=fopen("test.txt","w");
        pi=a;
        fwrite(pi,10*sizeof(int),1,pf);
        fclose(pf);
        return 0;
}

#include <stdio.h>
main()
{
        int i,b[10],*ip_1;
        FILE *fp_1;
        char filename[10];
        printf("Open file\n");
        scanf("%s",filename);
        fp_1=fopen(filename,"r");
        ip_1=b;
        fread(ip_1,10*sizeof(int),1,fp_1);
        for(i=0;i<10;++i)
                printf("%d,",*ip_1++);
        printf("\n");
        fclose(fp_1);
        return 0;
}
发表于 2002-12-14 23:11:16 | 显示全部楼层
好像在 gcc下可一运行,但同时我也发现一个奇怪的现象:
    我执行第一个程序后,用 less test.txt 怎么却看到的是@^@^@^A@^@^@B@^@^ 等等的东西,并且在kedit 和 konqueror 中什么也看不到.我想请问各位大侠,这是怎么回事???
发表于 2002-12-14 23:42:12 | 显示全部楼层
window和linux的字符集不同,
翻翻以前的贴就知道了,.txt 在linux下无法阅读。

re:autoland
你把程序用vi重新编辑一遍,然后用gcc就可以了。
如果你的程序是mount过来的,在最后加几个回车也可以解决。
发表于 2002-12-15 01:22:19 | 显示全部楼层
你这个程序的目的是什么呢?

在我看来,这是两个程序,第一个把十个整数以二进制形式存入一个文件(虽然你的文件名是 .txt);第二个要求用户输入一个文件名,然后从中以二进制形式读取十个整数。

如果是这个要求的话,我看程序是没有错的(虽然编程习惯不好)。你的 test.txt 文件里面都是二进制数据,当然用 less,kedit 等是看不到的。

你说 tc 编译正常,那 tc 编译后运行产生的 test.txt 文件是什么样的呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表