-3
我目前正在使用文件并通过它们进行排序。到目前为止,我可以打开文件并阅读每一行。现在我正试图将每一行分成特定的部分。唯一的问题是当我打印printf(“%s \ n”,line)行时,我的称为convertLine()的函数;它打印完全是我想要的。但我需要在main中打印,而不是从main调用的函数convertLine()中打印。这里是我的convertLine()函数:字符数组在不同的函数中操作时不会改变
void convertLine(char line[401], int *number, char fileLine[401])
{
char firstNum[2] = { fileLine[6] };
char secondNum[2] = { fileLine[7] };
char thirdNum[2] = { fileLine[8] };
char colonChar[2] = { fileLine[9] };
char fullMark[7] = { "" };
int length = 0;
length = strlen(fileLine);
++length;
line = (char*)malloc(length);
strcpy(fullMark, firstNum);
strcat(fullMark, secondNum);
strcat(fullMark, thirdNum);
*number = atoi(fullMark);
if (strstr(secondNum, ":")) //this works
{
strcpy(line, &fileLine[7]);
}
else if (strstr(secondNum, ":"))
{
strcpy(line, &fileLine[8]);
}
else
{
strcpy(line, &fileLine[9]);
}
printf("%s \n", line); //i want to be able to do this in main
length = strlen(line);
++length;
line = (char *)realloc(line, length);
free(line);
return;
}
该代码没有意义。首先,C是按价值划分的。其次,'line =(char *)realloc(line,length);免费(线);'是完全荒谬的。 – EOF
当然,我明白混乱。我明白C是按值调用的,但是当我在main函数中打印这个函数的数字变量时,怎么会这样呢?此外,为什么会重新分配我的线阵列的空间是无意义的,当内部的内容被更改并可能占用不同的空间量时? – bodotheguy
你真的需要从'c'的绝对基础开始。我没有时间来解释这个程序中的所有错误,也不是我真的想要教一个比较字符串与字符串与'=='如何在没有付款的情况下写'c'的人。 – EOF