最終的に私のコマンドラインの1つの引数、つまり1つのファイルで動作するようになったこのコードは、無制限の数のファイルで動作するコンセプトで設計されています。それは、スペースで区切られた単語を含むX個のXファイルを取り、空白を\ nに置き換えて単語のリストを作成することです。しかし、それは正常に最初の議論を完了する、それは私が2つ、または3つを追加すると、実際にこの作業をしたいと思う欠陥をseg!2つ以上のコマンドライン引数?
PS。これは同じコード上の2つの他の投稿から続きます。これは宿題の仕事ではなく、私は現在Uniから離れており、私たちの講義に先立ってCファイルI/Oを実験しています。
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdio.h>
int main(int argc, char** argv) {
FILE *fpIn, *fpOut;
int i, j;
j = 1;
int 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 (1) {
c = fgetc(fpIn);
if (c == EOF)
break;
if (isspace(c))
c = '\n';
fputc(c, fpOut);
}
j++;
}
}
return 0;
}
ネストされたwhile-for-loopストレートを取得すると、ソリューションに到達します。 'while'を完全に削除し、' for'ループの反復インデックスを使用します。 – thiton
なぜwhile(argc - )とfor(i = 1; i <= argc; i ++)の両方がありますか? – Francois