我正在使用一个函数来为某些信息创建结构数组。我收到此错误,我猜测 char buf[]
变量是导致该错误的变量。
有没有办法可以转换 buf
变量以使其与 strsub
函数兼容?最后一个 strsub
调用是给我带来错误的调用。
工资是一个 double
变量,buf
是一个 char[]
。
void strsub(char buf[], char sub[], int start, int end) {
int i, j;
double x;
for (j = 0, i = start; i <= end; i++, j++) {
sub[j] = buf[i];
}
sub[j] = '\0';
while (!feof(fp)) {
fgets(buf, MAX, fp);
strsub(buf, dataArray[i].first, 0, 6);
strsub(buf, dataArray[i].initial, 8, 8);
strsub(buf, dataArray[i].last, 10, 18);
strsub(buf, dataArray[i].street, 20, 35);
strsub(buf, dataArray[i].city, 37, 47);
strsub(buf, dataArray[i].state, 49, 50);
strsub(buf, dataArray[i].zip, 52, 56);
strsub(buf, dataArray[i].age, 58, 59);
strsub(buf, dataArray[i].sex, 61, 61);
strsub(buf, dataArray[i].tenure, 63, 63);
strsub(buf, dataArray[i].salary, 65, 69);
}
}
最佳答案
您正在尝试将double
传递给需要写入字符串的函数;这显然行不通,您必须将那段输入字符串复制到合适的缓冲区,然后将其解析为 double
(例如使用 strtod
)。
就我个人而言,这是一个非常严重的错误,您应该在进一步操作之前仔细阅读您的 C 手册。
关于c - 类型 "double"的参数与类型 "char *"的参数不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23506427/