argv0 = "delreves";
int m;
for(m = 1;m < argc;m++){
char buffer[256];
FILE *fd;
fd = fopen(argv[m],"r");
if(fd==NULL){
Error (EX_NOINPUT, "%s", "Fallo");
}
while(fgets(buffer,256,fd)){
int size = strlen(buffer);
int l=size-1;
int j;
for(j = 0; j < size/2; j++, l--){
char temp = buffer[j];
buffer[j] = buffer[l];
buffer[l] = temp;
}
printf("%s",buffer);
}
fclose(fd);
}
}
用一周的文件运行程序后我有
./a.out file.txt
yadnom
yadseut
....
如何在第一天之前消除空换行?
答案 0 :(得分:3)
如果在输入文件中遇到,函数fgets
将返回以换行符结尾的字符串。您的算法正在反转字符串,保留换行符,因此它将作为输出的第一个字符。这是你看到的:换行符然后是字符串。如果要消除它,只需丢弃输入的最后一个字符(将其替换为\0
),或使用长度为1。