arrays - 为什么 atoi() 在此代码中的第一次调用时返回 0?
问题描述
在以下代码中,我试图将 CSV 文件(按顺序:#、#、#、#)读入二维数组。但是,我遇到了这条线的问题
arry[counter][0] = atoi(numOne);
不管用。具体来说, atoi(numOne) 返回 0。但是,它在 printf("%s", numOne); 中打印出它的 int 值。
结果,我的数组如下所示:
0,1,3,2
0,0,5,4
0,9,8,1
0,10,6,3
缺少每行的第一项。
为什么是这样?
FILE *fp = fopen(argv[1], "r");
int counter = 0;
char line[150];
while (fgets(line, 150, fp)) {
printf("%s", line);
counter++;
}
int arry[counter-1][4];
NUM_ROWS = counter - 1;
rewind(fp);
//Skip First Line of Var Names
fgets(line, 150, fp);
counter = 0;
while(fgets(line, 150, fp)) {
char *numOne = strtok(line, ",");
char *numTwo = strtok(NULL, ",");
char *numThree = strtok(NULL, ",");
char *numFour = strtok(NULL, ",");
arry[counter][0] = atoi(numOne);
arry[counter][1] = atoi(numTwo);
arry[counter][2] = atoi(numThree);
arry[counter][3] = atoi(numFour);
printf("%s%s%s%s", numOne, numTwo, numThree, numFour);
counter++;
}
解决方案
推荐阅读
- protractor - 如何为功能中的每个场景关闭和打开浏览器 - 量角器和 cucumberjs
- azure - 策略 rewrite-uri 在 Azure APIM 中附加上下文变量
- java - 如何通过纯 Java 类读取 OSGI 配置
- javascript - 如何正确地将 ES6 模块函数导出为库以在节点应用程序中使用?
- python - 如何使用 matplotlib/seaborn 获得亮度保持灰度的调色板
- angular - 如何在 ngx bootstrap datepicker 中更改消息“无效日期”而不在节点模块中
- css - Angular 2+,使用 ngClass 以缓慢的过渡速度从右到左浮动
- python - Python中的多色散点图图例
- python - 如何在 Python 中向网站发送多个 get 请求?
- android - Android Studio 解析符号但编译时找不到包