我正在使用一个函数为某些信息创建一个结构数组。我收到此错误,我猜测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);
}
}
答案 0 :(得分:1)
您正在尝试将double
传递给期望写入字符串的函数;这显然不起作用,你必须将那段输入字符串复制到合适的缓冲区,然后将其解析为double
(使用例如strtod
)。
就个人而言,这是一个非常严重的错误,在进一步讨论之前,你应该仔细阅读你的C手册。
答案 1 :(得分:-4)
您可以使用GDB来帮助您。例如,您编程名称demo.c
$ gcc -g -o demo demo.c
$ gdb demo
Type "apropos word" to search for commands related to "word"...
Reading symbols from demo...done.
(gdb)
然后,您可以设置一些断点并使用步骤或下一步来观察记忆。