我的代码在某种程度上运行良好。我有两个问题。一,在将文件打印到标准输出的最后,它给了我一个分段错误。
第二,我不能使用 fputs 来打印数据,因为我马上就遇到了分段错误。所以要修复它,我使用 puts 打印它很好,但在每一行之后添加一个 '\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;
}