Накарах този код най-накрая да работи с един аргумент в моя команден ред, т.е. един файл, с който да работи, въпреки че проектирах кода с концепцията той да работи с неограничен брой файлове. Това, което прави, е да вземе някои X на брой текстови файлове, съдържащи думи, разделени с интервали, и заменя интервалите с \n
, като по този начин създава списък с думи. Въпреки това успешно завършва първия аргумент, просто игнорира втория.
Друг малък проблем изглежда, че той също отпечатва някаква боклук буква в края, Y с две точки над него; Предполагам някакъв EOF символ, но изглежда не мога да спра това да се случва!
int main(int argc, char** argv) {
FILE *fpIn, *fpOut;
int i, j;
j = 1;
char c;
char myString[256];
printf("%d", argc);
printf("\n");
printf("The following arguments were passed to main(): ");
for(i=1; i<argc; i++) printf("%s ", argv[i]);
printf("\n");
while(argc--) {
for(i = 1; i < argc; i++) {
fpIn = fopen(argv[j], "rb");
snprintf(myString, 256, "%s~[%d]", argv[j], i);
fpOut= fopen(myString, "wb");
while (c != EOF) {
c = fgetc(fpIn);
if (isspace(c))
c = '\n';
fputc(c, fpOut );
}
j++;
}
}
return 0;
}
EOF
във файл. Сега, как може да се случи това във вашия код? (Това е така, ще трябва да разберете как и да го поправите.) - person Greg Hewgill   schedule 28.12.2011