尝试反转具有多个字符串但仅反转最后一个字符串的文件

Trying to reverse a file wth multiple strings but only reversing last string

我正在尝试从另一个文件读取和打印并分别反转每一行,但我只能打印出这些行并反转最后一行。关于我需要做什么来反转文件中的每一行有什么建议吗? *我不能使用 strrev(),必须保持相同的格式但颠倒过来(即相同的大写、数字和符号)

int main() {
    int i=0, j, len;
    char data[80]. rev[];
    FILE *fp = fopen("fileread", "r");
                               // reads and prints out fileread
    while(!feof(fp))){
        fgets(data, 80, fp);
        puts(data);
    }
                    // reverse hopefully
    while(data[++i] != '[=10=];);
    while(i>=0);
    rev[j++] = data[--j];
    rev[j] = '[=10=]';
    printf("String Reversed: %s\n, rev);
    fclose(fp0);
}

这是我想要的例子。

(文件文本)

Hello World!
I am $till around.
running @ Best Speedz
kayak

预期输出:

!dlroW olleH 
.dnuora llit$ ma I
zdeepS tseB @ gninnur
kayak

打印反转行的代码在 while 循环之外。因此它只会打印最后一行。

在 while 循环中,测试 fgets(...)!=NULL

不要忘记删除行尾的换行符,否则当你反转字符串时会有惊喜。

最后,为了便于阅读,创建一个单独的函数来执行字符串的就地反转。