鱼C论坛

 找回密码
 立即注册
查看: 1740|回复: 2

[已解决]C语言如何提取 txt 文档的内容

[复制链接]
发表于 2019-4-3 11:20:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
C语言内创一个二维指针 如何将 TXT 内容赋值给这个指针


19969        192        132        154        233        63        97
19971        96        15        248        5        184        201
19975        160        19        252        98        211        251
19976        194        86        14        9        104        82
19977        0        14        199        145        243        19
19978        128        174        211        133        35        132
19979        32        168        70        216        239        225



这些数据是文档内的一小部分内容

请各位大神指点一下, 用于做 K均值算法 联系
最佳答案
2019-4-3 13:25:01
本帖最后由 Croper 于 2019-4-3 17:29 编辑
#include <stdio.h>

const char* filepath="D:\\a.txt";             //文件位置 
const int FILE_COUNT_ROW_MAX=1024;            //估计最大行数,尽量往上设
const int FILE_COUNT_COLUMN=7;                        //列数

int main()
{
        FILE *file=fopen(filepath,"r");
        if (file==NULL){
                printf("can't open file: %s",filepath);
                return 0;
        } 
        
        int *data[FILE_COUNT_ROW_MAX];
        int datasize=0;
        int flg_ret;
        do{
                int *tmp=(int*)malloc(sizeof(int)*FILE_COUNT_COLUMN);
                memset(tmp,0,sizeof(int)*FILE_COUNT_COLUMN);
                int i;
                for (i=0;i<FILE_COUNT_COLUMN;++i){
                        flg_ret=fscanf(file,"%d",tmp+i);
                        if (flg_ret==EOF) break;
                }
                if (i!=0){
                        data[datasize++]=tmp;
                }
                else{
                        free(tmp);
                }
        }while (flg_ret!=EOF);
        fclose(file); 
         
         //////////////文件读取完毕///////////////////
        int i,j;
        for (i=0;i<datasize;++i){
                for (j=0;j<7;++j){
                        printf("%d\t",data[i][j]);
                }
                printf("\n");
        } 
         
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-3 12:24:44 | 显示全部楼层
用文件指针来操作,也可百度搜一下教程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-3 13:25:01 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Croper 于 2019-4-3 17:29 编辑
#include <stdio.h>

const char* filepath="D:\\a.txt";             //文件位置 
const int FILE_COUNT_ROW_MAX=1024;            //估计最大行数,尽量往上设
const int FILE_COUNT_COLUMN=7;                        //列数

int main()
{
        FILE *file=fopen(filepath,"r");
        if (file==NULL){
                printf("can't open file: %s",filepath);
                return 0;
        } 
        
        int *data[FILE_COUNT_ROW_MAX];
        int datasize=0;
        int flg_ret;
        do{
                int *tmp=(int*)malloc(sizeof(int)*FILE_COUNT_COLUMN);
                memset(tmp,0,sizeof(int)*FILE_COUNT_COLUMN);
                int i;
                for (i=0;i<FILE_COUNT_COLUMN;++i){
                        flg_ret=fscanf(file,"%d",tmp+i);
                        if (flg_ret==EOF) break;
                }
                if (i!=0){
                        data[datasize++]=tmp;
                }
                else{
                        free(tmp);
                }
        }while (flg_ret!=EOF);
        fclose(file); 
         
         //////////////文件读取完毕///////////////////
        int i,j;
        for (i=0;i<datasize;++i){
                for (j=0;j<7;++j){
                        printf("%d\t",data[i][j]);
                }
                printf("\n");
        } 
         
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-3 14:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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