【发布时间】:2014-08-08 00:48:39
【问题描述】:
我的代码有问题。它应该从文件中读取字母并将它们写入另一个文件,如下例所示
in.txt:
AAAAAAAAAABCCCCC
AAAAAAAAAAAAAAAAAAAA
BBCDERFG
out.txt
10A1B5C
20A
2B1C1D1E1R1F1G
但我继续得到这个......
out.txt
10A1B5C
20A
2B1C1D1E1R1F1G 1A11.
你能告诉我为什么我不能去我想去的地方吗?提前谢谢你
#include <stdio.h>
#include <stdlib.h>
#define MAX_STRING 514
int main(int argc, char *argv[])
{
if(argc!=3) {
fprintf(stderr, "Exactly 3 arguments required");
exit(EXIT_FAILURE);
}
FILE *in;
FILE *out;
int i=0, k=0;
char buffer[MAX_STRING];
char string[MAX_STRING];
in = fopen(argv[1], "r");
if(in==NULL) {
fprintf(stderr, "Couldn't open the file %s", argv[1]);
exit(EXIT_FAILURE);
}
out=fopen(argv[2], "w");
if(out==NULL) {
fprintf(stderr, "Couldn't open the file %s", argv[2]);
exit(EXIT_FAILURE);
}
while(fgets(buffer, MAX_STRING, in)!= NULL) {
i=0;
while(buffer[i]!='\n') {
if(buffer[i]==buffer[i+1]) {
k++;
i++;
}
else {
fprintf(out, "%c%d", buffer[i], k+1);
i++;
k=0;
}
}
fprintf(out, "\n");
}
return 0;
}
【问题讨论】: