1. 首页 > 科技

为什么qt中用printf打印的汉字是乱码?怎么解决? printf输出文字乱码

为什么qt中用printf打印的汉字是乱码?怎么解决?printf输出文字乱码

为什么我printf函数里面的汉字全部显示乱码

#includeintmain(){inta[3][3],b[3][3],i,j;printf("输入数组的值:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);printf("\n");for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];//值互换的方向反了,该是b=a的形式,不是a=b的形式for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%2d",b[i][j]);//if(i%3==0)这句不要printf("\n");}return0;}

为什么printf输出变成了乱码

可能是编译器是西文环境,不直接支持汉字的输入与输出

编程问题,printf输出是乱码,求解释

汉字乱码的问题,参考下面的解决方法

在WIN-TC中输入如下代码:

#include "stdio.h"

main()

{

    system( "graftabl 936 ");    /*调用Ms-Dos中文支持 */

    clrscr();    /* 清屏*/

    printf( "输出中文"); 

    getch();

}    

运行后你会发现输出了中文,是不是啊?!

就是在程序开始加入 system( "graftabl 936 ");那句

关于C语言printf的使用,为何输出乱码

这里面错误很多,首先scanf里不要用无关的字符,直接scanf("%d%d",&a,&b)就行了(输入ab的时候中间用英文空格或TAB键空开),%e一般是用在printf里,在scanf是不用的,最重要的错误是printf的时候直接写变量名就行了,另外有一个隐藏的错误,当你在scanf的后面用scanf("%c的时候,需要先用getchar()或者fflush(stdin); 清除缓冲区,否则会导致你那个C1取到的是上一行的换行符,更改如下

#include

int main() {

    int a,b;

    float x,y;

    char c1,c2;

    printf("input a b:");

    scanf("%d%d",&a,&b);

    printf("input x y:");

    scanf("%f%f",&x,&y);

    fflush(stdin);

    printf("input c1c2:");

    scanf("%c%c",&c1,&c2);

    printf("a=%d\nb=%d\nx=%f\ny=%e\nc1=%d\nc2=%c",a,b,x,y,c1,c2);

    return 0;

}