私のコードはある意味でうまく機能します。ただし、2つの問題があります。1 つは、ファイルを標準出力に出力したときに、セグメンテーション違反が発生することです。
2 つ目は、すぐにセグメンテーション違反が発生するため、fputs を使用してデータを出力できないことです。だからそれを修正するために、私はそれをうまく印刷するプットを使用しますが、すべての行の後に「\ n」を追加して、テキストを1行間隔にし、最後にセグフォルトを作成します。
#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;
}