写出来的是乱码?请高手指点,谢谢
FILE *f1 ;
char ts6[64] ;
char ts1[64] ;
f1=fopen("out1.txt","wt+");
if (f1==NULL) { printf("cannot open file out.txt \n"); }
for ( int i = 0 ; i<20; i++ )
{
ts1[i]=Out_Ap1[i];
sprintf ( ts6 ,"%s\n" , ts1 ) ;
fputs(ts6,f1);
puts(ts6);
}
fclose(f1);
out1.txt写出来的是乱码?请高手指点,Out_Ap1是我发送的数据包
问题点数:66、回复次数:10Top
1 楼ccaolii(ccaolii)回复于 2001-08-10 16:31:33 得分 6
是不是out1.txt里的内容就有乱码呀!Top
2 楼ddeng(登登)回复于 2001-08-10 16:32:44 得分 6
你的Out_Ap1是什么类型,姑且当是char *吧:
for ( int i = 0 ; i<20; i++ )
{
strcpy(ts1, Out_Ap1);
sprintf ( ts6 ,"%s\n" , ts1 ) ;
fputs(ts6,f1);
puts(ts6);
}
Top
3 楼Dala(Dala)回复于 2001-08-10 16:37:34 得分 8
注意ts1需要有正确的结尾'\o'。Top
4 楼yyc20000(啊傻萨打)回复于 2001-08-10 16:42:20 得分 8
只要在ts1[i]=Out_Ap1[i];这一句后加上ts1[i+1]=0;就行。Top
5 楼yyc20000(啊傻萨打)回复于 2001-08-10 16:43:14 得分 8
我试过了,可以的。Top
6 楼wangledong(雪山之鹰)回复于 2001-08-10 16:43:29 得分 8
你的ts1一定没有\0截止。Top
7 楼lluunn007(书生)回复于 2001-08-10 17:04:14 得分 8
\0截止问题。Top
8 楼whitelion(www.ccproj.com)回复于 2001-08-10 17:41:30 得分 0
ccTop
9 楼xiaoya(快乐的人请举手)回复于 2001-08-10 19:37:22 得分 8
这一行有问题:
ts1[i]=Out_Ap1[i];
因为: char ts1[64];
所以你只为其中一个数据赋值了,然后
sprintf ( ts6 ,"%s\n" , ts1 );
~~~~
中,因为 ts1 的长度未知,所以 ts6 中会得到乱码,我很怀疑,这一行应该会导致非法存取错误。Top
10 楼wangxd(东东)回复于 2001-08-10 21:54:11 得分 6
\0问题Top




