因此,我试图复制(和以后修改).ppm文件。我在使用mingw g ++的Windows 10上。原始文件仅是LF,但使用我的程序创建的文件具有CRLF,该文件会破坏.ppm文件。我在任何地方都没有做,但仍然可以输出。
FILE *fp;
FILE *dest;
char magicNumber[3];
int width, height, depth;
unsigned char red, green, blue;
unsigned char* buff;
printf("Hello, World!\n");
fp = fopen("lenna.ppm", "r+");
fscanf(fp, "%s", magicNumber);
fscanf(fp, "%d %d %d", &width, &height, &depth);
printf("%s %d %d %d nums\n", magicNumber, width, height, depth);
dest = fopen("lena2.ppm", "w+");
fprintf(dest, "%s\n%d %d\n%d", magicNumber, width, height, depth);
Run Code Online (Sandbox Code Playgroud)
结果是
为什么?
我只想有LF。我怎么做?
以二进制模式打开文件:
fopen("lena2.ppm", "wb+");
Run Code Online (Sandbox Code Playgroud)
从文档:
在文本模式下,回车换行符组合在输入时转换为单个换行符,换行符在输出时转换为回车符组合。