无法反转转储输入文件
我想反转输入文件的内容并显示反转的内容,但我没有得到它;我想我犯了一个逻辑错误。
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
int main() {
char* c = malloc(10);
char* c1 = malloc(10);
char ch, arg1[100], arg2[100];
int i, count = 0;
FILE *fp, *fq;
printf("Name of the file:");
scanf("%s", arg1);
fp = fopen(arg1, "w+");
if (!fp) {
perror("Failed to open file");
return errno;
}
printf("\t\t\t%s\n\n", arg1);
printf("\t\tInput the text into the file\n");
printf("\t\tPress Ctrl+d to the stop\n");
while ((*c=getchar()) != EOF) {
fwrite(c, 1, sizeof(c), fp);
count++;
}
printf("\n\n");
fclose(fp);
fp = fopen(arg1, "w+");
printf("Name of the output file:");
scanf("%s", arg2);
printf("Reversing the contents of the file.......\n");
fq = fopen(arg2, "w+");
printf("\t\t%s\n\n", arg2);
for (i = 1; i <= count; i++) {
fseek(fp, -(i + 1), SEEK_END)
fwrite(c1, 1, sizeof(c1), fq);
}
printf("Done....Opening the file\n");
rewind(fq);
for (i = 0; i <= count; i++) {
ch = getc(fp);
putc(ch, stdout);
}
fclose(fp);
fclose(fq);
return 0;
}
I want to reverse the contents of the input file and display the reversed contents, but I am not getting it; i think I have made a logic error.
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
int main() {
char* c = malloc(10);
char* c1 = malloc(10);
char ch, arg1[100], arg2[100];
int i, count = 0;
FILE *fp, *fq;
printf("Name of the file:");
scanf("%s", arg1);
fp = fopen(arg1, "w+");
if (!fp) {
perror("Failed to open file");
return errno;
}
printf("\t\t\t%s\n\n", arg1);
printf("\t\tInput the text into the file\n");
printf("\t\tPress Ctrl+d to the stop\n");
while ((*c=getchar()) != EOF) {
fwrite(c, 1, sizeof(c), fp);
count++;
}
printf("\n\n");
fclose(fp);
fp = fopen(arg1, "w+");
printf("Name of the output file:");
scanf("%s", arg2);
printf("Reversing the contents of the file.......\n");
fq = fopen(arg2, "w+");
printf("\t\t%s\n\n", arg2);
for (i = 1; i <= count; i++) {
fseek(fp, -(i + 1), SEEK_END)
fwrite(c1, 1, sizeof(c1), fq);
}
printf("Done....Opening the file\n");
rewind(fq);
for (i = 0; i <= count; i++) {
ch = getc(fp);
putc(ch, stdout);
}
fclose(fp);
fclose(fq);
return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个示例程序,它将文件加载到内存中,然后将内存的内容向后打印到标准输出。
输入文本:
输出文本:
Here is an example program which loads the file into memory and then prints the content of the memory backwards to stdout.
Input text:
Output text: