- C/C++ code
fprintf(stdout,"Content-Type:image/jpeg;\n\n"); result = _setmode(_fileno(stdout),_O_BINARY); if( result == -1) { //浏览器将自动根据输出内容转换为文本输出 fprintf(stdout,"模式输出转换出错,程序将退出"); exit(1); } else { char ch; while(!imageFile.eof()) { imageFile.get(ch); //wprintf("%wc",(TCHAR)ch); fprintf(stdout,"%c",ch); } imageFile.close(); } //_setmode(_fileno(stdout),_O_TEXT);
这是我的代码片段,此时图片显示一切正常,如果我注释去掉,则图片会有部分由刮花现象,感觉就像是二进制还没传输完,又变成字符模块输出了,但是看程序是在都输出完才转成TEXT模式的啊。。难道还有其他玄机??
求高手指点
------解决方案--------------------
后面那段//_setmode(_fileno(stdout),_O_TEXT);没有必要