输出文件内容,汉字乱码
一个很简单的程序,读取文本文件内容,再倒序输出。如果文件内容只有字母和数字,就能正常输出,如果有汉字,就变乱码了,不会是程序问题,官方源码。。。mingw编译
编码问题 你要搞明白 你的文件是什么编码 库函数能处理什么编码 输出的时候又支持什么编码
#include <stdio.h> #include <stdlib.h> #define CNTL_Z '\032' /* DOS 文本文件中的文件结尾标记 */ #define SLEN 50 int main (void) { char file[SLEN]; char ch; FILE *fp; long count, last; puts ("Enter the name of the file to be processed : "); gets(file); if ((fp = fopen(file, "rb")) == NULL) { /* 只读和二进制模式 */ printf ("reverse can't open %s \n",file); exit(1); } fseek(fp,0L, SEEK_END); /* 定位文件结尾处 */ last = ftell(fp); for (count = 1L; count <= last; count++) { fseek(fp,-count,SEEK_END); /* 回退 */ ch = getc(fp); /* 针对 DOS, 在 UNIX 下也可工作 */ if (ch != CNTL_Z && ch != '\r') putchar(ch); } putchar('\n'); fclose(fp); return 0; }