wuliaaa 发表于 2019-11-29 23:33:37

求解 C语言 文件读取问题

问题1:我这样编写的代码,目的是把csv格式数据读取出来,但不知道代码哪里有问题,输出的a实际上是a,就是第一列被跳过去了,求问为什么会这样啊{:10_266:} {:10_266:}
问题2:如果我想把数组的类型由int改为char(数据里面有字母),这样的话代码要怎么改呢?我直接把%d和定义改成char好像不行,输出会错误{:10_266:} 求大神指点,谢谢啦{:10_266:}


#include <stdio.h>
#define hang 3
#define lie 5
main()
{
        int i, j;
        FILE *fid;
        int a;
        char str, str2, str3;
        fid = fopen("test.csv", "r");
        for (i = 0; i<hang; i++){
                fscanf(fid, "%256[^,]", &str);
                for (j = 0; j<lie; j++){
                        fscanf(fid, ",%d", &a);
                       
                }
        }
        printf("%d\n", a);

}

jackz007 发表于 2019-11-30 00:59:29

#include <stdio.h>
#include <string.h>

split(char s[] , int d[])
{
      int k , m               ;
      for(m = 0 , k = 0 , d = 0 ; s ; k ++) if(s == ',') {
                s = '\0'   ;
                d = k + 1 ;
      }
      return m                ;
}

main()
{
      char s                                                            ;
      int d , k , m                                                         ;
      FILE * fp                                                               ;
      if(fp = (fopen("test.csv" , "r"))) {
                fgets(s , 1024 , fp)                                              ;
                while(! feof(fp)) {
                        s = '\0'                                 ;
                        m = split(s , d)                                          ;
                        printf("%s" , & s])                                  ;
                        for(k = 1 ; k < m ; k ++) printf(" , %s" , & s])   ;
                        printf("\n")                                              ;
                        fgets(s , 1024 , fp)                                    ;
                }
                fclose(fp)                                                      ;
      } else {
                fprintf(stderr , "错误:输入文件不存在!\n")                      ;
                fprintf(stderr , "\n")                                          ;
      }
}

ALWAYS浩然 发表于 2019-11-30 13:59:41

{:9_218:}

wuliaaa 发表于 2019-11-30 14:12:44

jackz007 发表于 2019-11-30 00:59


还是看不懂怎么改……我的代码是要把表格读取到二维数组,然后准备调用的什么的……这样好像和原本的有很大差别{:10_247:}主要其实还是想问问为什么调用的a会变成a{:10_266:}
页: [1]
查看完整版本: 求解 C语言 文件读取问题