关于用sprintf写文件的有关问题
关于用sprintf写文件的问题
我想把几个字符串数组输出,但是发现都是乱码,而且写好的文件好大,请问是怎么回事呀,555。。。
char newNm[VARNUM][30];
char memo[VARNUM][50];
char deviceType[VARNUM][2];
相关代码如下:
FILE *f1 = fopen( "write.txt ", "w ");
for(int i=0;i <3;i++)
fprintf(f1, "%s %s %s\n ",newNm[i],memo[i],deviceType[i]);
fclose(f1);
最后的write文件里都是:
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
------解决方案--------------------
没有初始值...........
------解决方案--------------------
肯定是newNm[1]没初始化, 你可以在上一行加上一句 strcpy(newNm[1], "TestWrite "); 试试...
------解决方案--------------------
const VARNUM = 3;
char newNm[VARNUM][30];
char memo[VARNUM][50];
char deviceType[VARNUM][2];
FILE *f1 = fopen( "write.txt ", "w ");
for(int i=0;i <VARNUM;i++)
{
strcpy(newNm[i], "Test_newNm ");
strcpy(memo[i], "Test_memo ");
strcpy(deviceType[i], "Test_deviceType ");
fprintf(f1, "%s %s %s\n ",newNm[i],memo[i],deviceType[i]);
}
fclose(f1);
我想把几个字符串数组输出,但是发现都是乱码,而且写好的文件好大,请问是怎么回事呀,555。。。
char newNm[VARNUM][30];
char memo[VARNUM][50];
char deviceType[VARNUM][2];
相关代码如下:
FILE *f1 = fopen( "write.txt ", "w ");
for(int i=0;i <3;i++)
fprintf(f1, "%s %s %s\n ",newNm[i],memo[i],deviceType[i]);
fclose(f1);
最后的write文件里都是:
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
------解决方案--------------------
没有初始值...........
------解决方案--------------------
肯定是newNm[1]没初始化, 你可以在上一行加上一句 strcpy(newNm[1], "TestWrite "); 试试...
------解决方案--------------------
const VARNUM = 3;
char newNm[VARNUM][30];
char memo[VARNUM][50];
char deviceType[VARNUM][2];
FILE *f1 = fopen( "write.txt ", "w ");
for(int i=0;i <VARNUM;i++)
{
strcpy(newNm[i], "Test_newNm ");
strcpy(memo[i], "Test_memo ");
strcpy(deviceType[i], "Test_deviceType ");
fprintf(f1, "%s %s %s\n ",newNm[i],memo[i],deviceType[i]);
}
fclose(f1);