鱼C论坛

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

[已解决]求问这个错误代码的原因

[复制链接]
发表于 2019-11-28 23:04:26 | 显示全部楼层 |阅读模式

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

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

x
求问为什么会有这样的七个错误代码啊 代码目的是要用C语言把CSV文件导入到二维数组里面 谢谢啦



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


  3. char *trim(char *str)
  4. {
  5.         char *p = str;
  6.         while (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n')
  7.                 p++;
  8.         str = p;
  9.         p = str + strlen(str) - 1;
  10.         while (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n')
  11.                 --p;
  12.         *(p + 1) = '\0';
  13.         return str;
  14. }
  15. int main()
  16. {
  17.         FILE *fp = fopen("test.csv", "r");
  18.         if (fp == NULL) {
  19.                 return -1;
  20.         }
  21.         char line[1024];
  22.         while (fgets(line, sizeof(line), fp)) {
  23.                 //printf("%s", line);
  24.                 char *save_ptr;
  25.                 char *name = strtok_r(line, ",", &save_ptr);
  26.                 if (name == NULL) {
  27.                         return -1;
  28.                 }
  29.                 char *age = strtok_r(NULL, ",", &save_ptr);
  30.                 char *birthday = strtok_r(NULL, ",", &save_ptr);
  31.                 printf("%s\t%s\t%s\n", trim(name), trim(age), trim(birthday));
  32.         }
  33.         return 0;
  34. }
复制代码
最佳答案
2019-11-29 00:23:56
本帖最后由 bin554385863 于 2019-11-29 00:27 编辑

        while (fgets(line, sizeof(line), fp)) {
                //printf("%s", line);
                char *save_ptr;-------请问这个指针指向哪里?
                char *name = strtok_r(line, ",", &save_ptr);--------对一个野指针取地址,你是什么逻辑?
                if (name == NULL) {
                        return -1;
                }
                char *age = strtok_r(NULL, ",", &save_ptr);
                char *birthday = strtok_r(NULL, ",", &save_ptr);
                printf("%s\t%s\t%s\n", trim(name), trim(age), trim(birthday));
        }
        return 0;
}
=============================
别的错误我没看出来
但是你后面的代码居然使用野指针,,,,,,还对野指针取地址,,,不得不对你写一个
TIM截图20191128230359.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-11-29 00:23:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 bin554385863 于 2019-11-29 00:27 编辑

        while (fgets(line, sizeof(line), fp)) {
                //printf("%s", line);
                char *save_ptr;-------请问这个指针指向哪里?
                char *name = strtok_r(line, ",", &save_ptr);--------对一个野指针取地址,你是什么逻辑?
                if (name == NULL) {
                        return -1;
                }
                char *age = strtok_r(NULL, ",", &save_ptr);
                char *birthday = strtok_r(NULL, ",", &save_ptr);
                printf("%s\t%s\t%s\n", trim(name), trim(age), trim(birthday));
        }
        return 0;
}
=============================
别的错误我没看出来
但是你后面的代码居然使用野指针,,,,,,还对野指针取地址,,,不得不对你写一个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-29 09:03:24 | 显示全部楼层
bin554385863 发表于 2019-11-29 00:23
while (fgets(line, sizeof(line), fp)) {
                //printf("%s", line);
             ...

那要怎么修改啊是我漏了什么吗?新手研究ing
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-10 13:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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