鱼C论坛

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

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

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

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

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

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


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


char *trim(char *str)
{
        char *p = str;
        while (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n')
                p++;
        str = p;
        p = str + strlen(str) - 1;
        while (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n')
                --p;
        *(p + 1) = '\0';
        return str;
}
int main()
{
        FILE *fp = fopen("test.csv", "r");
        if (fp == NULL) {
                return -1;
        }
        char line[1024];
        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;
}
最佳答案
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
想知道小甲鱼最近在做啥?请访问 -> 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;
}
=============================
别的错误我没看出来
但是你后面的代码居然使用野指针,,,,,,还对野指针取地址,,,不得不对你写一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

那要怎么修改啊是我漏了什么吗?新手研究ing
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-5 01:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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