我正在尝试在fgets中循环每个字符的行,但我遇到了错误,如下所述。
int main(int argc, char* argv[]) {
char arr[200]
int currS = sizeof(arr) / sizeof(char);
// call readIt function
}
void readIt(char* argv[], char arr[], int currS) {
FILE* file;
file = NULL;
file = fopen(argv[1], "r");
while(fgets(arr, currS, file) != NULL)
for (int i = 0; i < sizeof(arr); i++)
print each char of current line
}
当我在每一行上使用for循环时,每一行的输出都将是文件中第一行的长度。for循环迭代的次数永远不会改变。我该如何更新它?我查看了其他SO问题,但它们并不是很有帮助。
sizeof(char)
始终为1。可以简化为int currS = sizeof(arr);
。 - chux - Reinstate Monicagetline()
替代fgets()
,因为它的一个优点是可以返回行的长度。 - Jonathan Leffler