c - 类型 "double"的参数与类型 "char *"的参数不兼容

标签 c

我正在使用一个函数来为某些信息创建结构数组。我收到此错误,我猜测 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/

相关文章:

python - c mmap 将 long 写入 mmaped-area

c - 检索可用的 YouTube 视频格式

c - 为什么使用%c而不是%d进行格式化

在 C 中使用 while 循环计算 e 常数

我可以从当前线程中保存一个值吗?

c - 寻找一个代码生成器来从抽象文档描述创建 XML 读入例程

c - Oracle Pro*C/OCI 为 SIGSEGV/SIGABRT 和 friend 安装处理程序 - 为什么以及如何禁用?

c - 从安装文件安装后出现系统错误

软件可以在裸机上执行吗?

c - 为什么将其强制转换为结构指针而不是编译时常量?