【发布时间】:2017-03-27 18:50:04
【问题描述】:
我正在尝试从另一个文件读取和打印并分别反转每一行,但我只能打印出这些行并反转最后一行。关于我需要做什么来反转文件中的每一行的任何建议? *我不能使用 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] != '\0;);
while(i>=0);
rev[j++] = data[--j];
rev[j] = '\0';
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
【问题讨论】:
-
请在您的问题中发布代码,而不是图像或其他任何内容。
-
不不不。代码属于问题内部。发布minimal reproducible example。
-
请参阅Why is “while ( !feof (file) )” always wrong?。更好的是
while(fgets(data, sizeof data, fp) != NULL) {...}。并注意fgets在data字符串末尾保留的newline。 -
编辑与图片代码不同。我正要评论循环递增
i,然后递减i,但您已将其更改为与j同上。请发布显示问题的Minimal, Complete, and Verifiable example。