c - 获取指针指向的值
问题描述
我在做作业时遇到了一些麻烦。我正在尝试从 txt 文件中读取行(逐行)拆分值并从中计算二次公式;这些行总是包含 a、b 和 c。但是,我遇到了一个问题,当我使用公式时,值似乎是指针位置而不是分配的值。我不认为finalArrayOfValues
应该是 achar*
但没有它代码将无法编译。有什么方法可以从指针中检索值,还是我应该尝试不同的解决方案?
如果这是微不足道的(来自javascript和python),请提前道歉我对c很陌生,谢谢。
#include <math.h>
#include <stdio.h>
#include <string.h>
int main(void) {
double a;
double b;
double c;
double d;
char arrayOfValues[100][128];
char lines[128];
char *finalArrayOfValues[3];
int i = 0;
double root1, root2;
FILE *file; /* declare a FILE pointer */
file = fopen("QFData1.txt", "r");
int count = 0;
while (fgets(lines, 128, file)) {
strcpy(arrayOfValues[count], lines);
printf("line %d: %s\n", count, arrayOfValues[count]);
count++;
}
char *string = arrayOfValues[1];
char *token = strtok(string, ",");
// loops through the string to extract all other tokens
for (int n = 0; n < 3; n++) {
finalArrayOfValues[i] = token;
printf(" %s\n", token);
token = strtok(NULL, ",");
i++;
}
printf(" %s\n", finalArrayOfValues[0]);
printf(" %s\n", finalArrayOfValues[1]);
printf(" %s\n", finalArrayOfValues[2]);
a = finalArrayOfValues[0] - "0";
b = finalArrayOfValues[1] - "0";
c = finalArrayOfValues[2] - "0";
printf(" %f\n", a);
printf(" %f\n", b);
printf(" %f\n", c);
d = b * b - (4 * a * c);
printf(" %f\n", d);
// real roots
root1 = (-b + sqrt(d)) / (2 * a);
root2 = (-b - sqrt(d)) / (2 * a);
printf("First root = %.2lf\n", root1);
printf("Second root = %.2lf\n", root2);
return 0;
}
解决方案
推荐阅读
- c# - 使用正则表达式忽略特定字符串
- oracle12c - 刷新表中的数据而不在 adf 12c 中重建项目
- android - 如何下载特定国家/地区的离线地图
- css - 通过属性指令将 CSS 样式传递给子 HTML 元素
- python - 在我的函数中循环遍历字典值
- javascript - 如何使用 JSON 数据创建动态表?
- c# - 体素树生成器
- c# - 在导航中传递数据
- c++ - 使用 const 变量时无效使用非静态数据成员
- java - org.openqa.selenium.WebDriverException:未知错误:无法通过 Java 使用 ChromeDriver Chrome 和 Selenium 聚焦元素