我有一个关于从未知bin文件复制到C中的文本文件的问题。
linux中终端输入的示例(运行程序的命令):./program -f file.txt <file.bin
在这种情况下-f是来自switch case的标志,file.txt是一个文本文件,内容被复制到文件中,如果文件是不存在它将被创建,file.bin是一个文件,您将从中复制内容,但您不知道文件的名称。
编辑:
if(o == 1){
FILE *f;
char ch;
f = fopen(writeTarget, "wb+");
while(fscanf(stdin, "%s", & ch)){
printf("Read %s", ch);
fputs(ch, f);
}
/*while(1) {
ch = fgetc(stdin);
if(ch == EOF) {
break;
} else {
putc(ch, f);
}
}*/
fclose(f);
}
这是我尝试使用命令./main file.txt <file.bin
从stdin打印到文件的代码,但它被卡在无限循环中或者我得到分段错误(核心转储)。我在这里错过了什么?在评论中还有另一个我尝试过的例子。注释中的代码不会卡在无限循环中,如果文件不存在,它会创建一个文件,但它不会打印任何文件。