Наконец-то я получил этот код, работающий с одним аргументом в моей командной строке, то есть с одним файлом для работы, хотя я разработал код с концепцией работы с неограниченным количеством файлов. Что он делает, так это берет некоторое количество текстовых файлов 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