I've got this code finally working with a single argument on my command line, i.e. one file for it to work with, although I designed the code with the concept of it working with an unlimited number of files. What it does is take some X number of text files containing words separated by spaces, and replaces spaces with
thus creating a list of words. Though, it successfully completes the first argument, it just ignores the 2nd.
Another minor problem seems that it also prints out some garbage letter at the end, a Y with two dots above it; I assume some EOF symbol, yet I can't seem to stop that happening!
int main(int argc, char** argv) {
FILE *fpIn, *fpOut;
int i, j;
j = 1;
char c;
char myString[256];
printf("%d", argc);
printf("
");
printf("The following arguments were passed to main(): ");
for(i=1; i<argc; i++) printf("%s ", argv[i]);
printf("
");
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 = '
';
fputc(c, fpOut );
}
j++;
}
}
return 0;
}
See Question&Answers more detail:os