-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