私のコードはうまく動作します。私はそれに2つの問題がある。 1つは、ファイルを標準出力に出力する最後に、私にセグメンテーションエラーが発生します。c - wwwmcで 'cat'を実装していますか? (私のコードで何が問題なのですか)
2つ目は、すぐにセグメンテーション違反が発生するため、fputsを使用してデータを印刷することはできません。だから私はそれをうまく印刷するputsを使用しますが、最後にsegフォールトと同様に間隔を置いて1行のテキストを作るすべての行の後に '\ n'を追加します。
#include <stdio.h>
#include <string.h>
void concat(char *arg){
char string[256];
FILE *fp = fopen(arg, "r");
while(!feof(fp)){
fgets(string, 256, fp);
//fputs(string, fp);
puts(string);
}
fclose(fp);
}
void stdincat(){
char string[256];
while(!feof(stdin)){
fgets(string, 256, stdin);
fputs(string, stdout);
}
}
int main(int argc, char *argv[]){
char argvalues[256][40];
if(argv[1] == NULL)
stdincat();
else if(argv[1] != NULL){
int i;
for(i=1;i<=(argc);i++){
concat(argv[i]);
}
}
return 0;
}
感謝をfputsための標準出力を使用する必要があり、あなただけの読み取りのために開かれたストリームに書き込むことはできません! fgetsの問題は、単にブラインドコーディングでした。それは私がそれを見ていないことが恥ずかしいです。 すべてが今動作します。ありがとう! – jonalmeida