C语言如何将一个字符串数组 写入txt 文件中 第2个“//”之前是将16进制转换为了字符串存储

l1005834871 2014-04-22 04:04:29
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

unsigned char shuzi[64]=
{0xa,0xb,0x00,0x00,0x70,0x00,0x40,0x00,0x90,0x00,0x00,0x00,0x00,0x80,0x01,0x80,
0x1F,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x03,0xC0,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned int N16_32[32];


void main()
{
int i,j,sum;
FILE *fp;
int i_1,j_1;
// unsigned int sumb;
char *string[32]={"","","","",""};
char strinn[4];
char stringn[5]="asdfg";
for(i_1=0,j_1=0;i_1<64,j_1<32;i_1++,j_1++)
{
N16_32[j_1] =(shuzi[i_1]<<8)|shuzi[++i_1];

printf("\n%x : %x;\n",j_1,N16_32[j_1]);
}

for(i=0;i<32;i++)
{
itoa(N16_32[i], strinn, 16);
string[i]= strinn;
printf("integer = %x string[%d] = %s\n",N16_32[i], i,string[i]);

}

//
fp=fopen("d:\\MYFILE.txt","w");
fwrite(string[0],5,1,fp);
printf("写入错误\n");

fclose(fp);

}
...全文
718 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-04-23
  • 打赏
  • 举报
回复
fwrite(string[0],5,1,fp);//将string[0]所指内存的前5个字节写入文件d:\\MYFILE.txt中
赵4老师 2014-04-23
  • 打赏
  • 举报
回复
引用 3 楼 beiye90 的回复:
[quote=引用 1 楼 zhao4zhong1 的回复:] fp=fopen("d:\\MYFILE.txt","wb"); fwrite(string,5,1,fp);//将string的前5个字节写入文件d:\\MYFILE.txt中 fclose(fp); 推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。 不要把 fopen("...","...");fscanf,fprintf,fgets,fgetc,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fseek,fread,fwrite,fgetc,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了
天天都能看到你![/quote] 生命的意义不就是追求一个存在感吗?
l1005834871 2014-04-23
  • 打赏
  • 举报
回复
字符串的 数组 还是不明白怎么存储 不过 把所有的字符串串在一起 存储 中间加上了 换行和空格之类的 功能还是实现啦
l1005834871 2014-04-23
  • 打赏
  • 举报
回复
#include<stdio.h> #include<stdlib.h> #include<string.h> unsigned char shuzi[64]= {0xa,0xb,0x00,0x00,0x70,0x00,0x40,0x00,0x90,0x00,0x00,0x00,0x00,0x80,0x01,0x80, 0x1F,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80, 0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80, 0x01,0x80,0x03,0xC0,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; unsigned int N16_32[32]; void main() { int i,j,sum; FILE *fp; int i_1,j_1; char *string[32]={"","","","",""}; char strinn[4]; char stringn[288]={"\0"}; char strin1[4]; //char stringm[6]={'1','2','3','a','b','\0'}; char stringm[6]={"sdfgh"}; for(i_1=0,j_1=0;i_1<64,j_1<32;i_1++,j_1++) { N16_32[j_1] =(shuzi[i_1]<<8)|shuzi[++i_1]; // printf("\n%x : %x;\n",j_1,N16_32[j_1]); } for(i=0;i<32;i++) { itoa(N16_32[i], strinn, 16); itoa(i, strin1, 16); if(i==0) { strcpy(stringn,strin1); strcat(stringn," : "); strcat(stringn,strinn); strcat(stringn,"\n"); } else { strcat(stringn,strin1); strcat(stringn," : "); strcat(stringn,strinn); strcat(stringn,"\n"); } if(i==31) printf("%s",stringn); } // printf("%s",stringn); fp=fopen("d:\\MYFILE.txt","w"); if(fwrite(stringn,sizeof(char),288,fp)!=1) printf("写入错误\n"); fclose(fp); }
l1005834871 2014-04-23
  • 打赏
  • 举报
回复
额 自己都有点晕啦 就是想把 几个字符串 写到一个文件里面
Soul_7 2014-04-22
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
fp=fopen("d:\\MYFILE.txt","wb"); fwrite(string,5,1,fp);//将string的前5个字节写入文件d:\\MYFILE.txt中 fclose(fp); 推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。 不要把 fopen("...","...");fscanf,fprintf,fgets,fgetc,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fseek,fread,fwrite,fgetc,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了
天天都能看到你!
707wk 2014-04-22
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
fp=fopen("d:\\MYFILE.txt","wb"); fwrite(string,5,1,fp);//将string的前5个字节写入文件d:\\MYFILE.txt中 fclose(fp); 推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。 不要把 fopen("...","...");fscanf,fprintf,fgets,fgetc,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fseek,fread,fwrite,fgetc,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了
赞同,原来写的一个程序在文本框不能换行,后来发现是文件打开方式的问题
赵4老师 2014-04-22
  • 打赏
  • 举报
回复
fp=fopen("d:\\MYFILE.txt","wb"); fwrite(string,5,1,fp);//将string的前5个字节写入文件d:\\MYFILE.txt中 fclose(fp); 推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。 不要把 fopen("...","...");fscanf,fprintf,fgets,fgetc,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fseek,fread,fwrite,fgetc,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧