将文本文件的每一行转换为数组c

时间:2015-10-07 20:52:44

标签: c arrays file text line

我尝试从文本文件中获取输入,然后反转每一行,然后输出回另一个文本文件。出于某种原因,程序只对第一行执行此操作,而不会移动到第二行。我没有得到这个,因为它应该继续前进,直到它击中EOF。

1 个答案:

答案 0 :(得分:0)

如果文件没有以换行符结尾,您将永远不会打印最后一行,因为您在阅读换行符时只能调用reverse(array)

您可以在while循环完成后再次调用它来解决此问题。

int  main() {
    char temp;
    char  array[80] = "";
    int count = 0;
    temp = getchar();  //Start on first Character
    while (temp != EOF) {   //loop through the entire file
        if (temp == '\n') {  //If it is the end of a line
            reverse(array);   //Print out the reversed line
            memset(array,0,80);  //clear the array
            count = 0;  //reset count
            temp = getchar(); //Advance getchar
        }
        else {  //If it is not the end of the line
            array[count] = temp;  //Store the char in the array
            count++;   //advance count
            temp = getchar();   //advance getchar
        }
    }
    if (count > 0) {
        reverse(array);
    }
    return 0;
}