哪位大哥大姐可以帮我弄好这个程序啊。。。

roger0710 2009-04-17 07:45:08
一个小程序,把十六进制文本转换成十六进制数值,但是就是不对啊,哪位大哥大姐愿意帮忙,我发给你啊。。。这里居然总说我上传错误。。。啊。。。要疯了。。。
...全文
109 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
roger0710 2009-04-17
  • 打赏
  • 举报
回复
能通过,但是会将信息写入两遍,我用的vc6
jackyjkchen 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 roger0710 的回复:]
不懂,什么意思啊?
[/Quote]

别告诉我你原来能编译通过……你到底要问什么啊
roger0710 2009-04-17
  • 打赏
  • 举报
回复
不懂,什么意思啊?
jackyjkchen 2009-04-17
  • 打赏
  • 举报
回复
注意的作用域,只在大括号内,把int i放到循环外面就行了
roger0710 2009-04-17
  • 打赏
  • 举报
回复
代码我贴 在上面了
liliangbao 2009-04-17
  • 打赏
  • 举报
回复
LS的好狠~
贴出你的要求,或代码看一看~
roger0710 2009-04-17
  • 打赏
  • 举报
回复
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
#define MAX 1024

string& replace_all(string& str,const string& old_value,const string& new_value)
{
while(true)
{
string::size_type pos(0);
if((pos=str.find(old_value)) != string::npos)
{
str.replace(pos,old_value.length(),new_value);
}
else
{
break;
}
}
return str;
}

int trans(char ch1);

int strToDec(string s)
{
char c[3];
strcpy(c,s.c_str());
int first=trans(c[0]);
int second=trans(c[1]);
int ans=first*16+second;
return ans;

}


int trans(char ch1)
{
int ans;
switch(ch1)
{
case '0':
ans =0;
break;

case '1':
ans=1;
break;

case '2':
ans=2;
break;

case '3':
ans=3;
break;

case '4':
ans=4;
break;

case '5':
ans=5;
break;

case '6':
ans=6;
break;

case '7':
ans=7;
break;

case '8':
ans=8;
break;

case '9':
ans=9;
break;

case 'A':
case 'a':
ans=10;
break;

case 'B':
case 'b':
ans=11;
break;

case 'C':
case 'c':
ans=12;
break;

case 'D':
case 'd':
ans=13;
break;

case 'E':
case 'e':
ans=14;
break;

case 'F':
case 'f':
ans=15;
break;
}
return ans;
}

string DecToStr(int num[],int length)
{
char x1;
string s,ss;
for(int i=0;i <length;i++)
{
x1=(char)num[i];
s+=x1;
}
return s;
}

int main()
{
vector <int> test;
int arr[16];
const char * srcfile = "c:\\1.txt";
const char * desfile = "d:\\2.txt";
char buffer[MAX];
char tmp[16];
int len;
ifstream file1(srcfile);
ofstream file2(desfile);
string strarr[16];
while(file1)
{
file1.getline(buffer,MAX);
string str(buffer);
char cc[3];
replace_all(str,"\t","");
replace_all(str," ","");
//cout < <str < <endl;
for (int i=0;i <str.length();i+=2)
{
strarr[i/2]=str.substr(i,2);
}
//cout < <arr[i];
for(i=0;i <16;i++)
{

arr[i]=strToDec(strarr[i]);
cout < <arr[i] < <" ";
}


string str1;
str1=DecToStr(arr,16);
file2.write(str1.c_str(),str1.length());

}
file1.close();
file2.close();
cout < <"写入完成!" < <endl;
return 0;
}


// char dgt[2];
// int x1;
// int i,j;
// unsigned long int y;
//
//
// s='b';
//
//
// if(s>='A')
// x1=(int)(s+10-'A');
// else
// x1=(int)(s-'0');
//
//
// cout < <x1 < <endl;
roger0710 2009-04-17
  • 打赏
  • 举报
回复
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
#define MAX 1024

string& replace_all(string& str,const string& old_value,const string& new_value)
{
while(true)
{
string::size_type pos(0);
if((pos=str.find(old_value)) != string::npos)
{
str.replace(pos,old_value.length(),new_value);
}
else
{
break;
}
}
return str;
}

int trans(char ch1);

int strToDec(string s)
{
char c[3];
strcpy(c,s.c_str());
int first=trans(c[0]);
int second=trans(c[1]);
int ans=first*16+second;
return ans;

}


int trans(char ch1)
{
int ans;
switch(ch1)
{
case '0':
ans =0;
break;

case '1':
ans=1;
break;

case '2':
ans=2;
break;

case '3':
ans=3;
break;

case '4':
ans=4;
break;

case '5':
ans=5;
break;

case '6':
ans=6;
break;

case '7':
ans=7;
break;

case '8':
ans=8;
break;

case '9':
ans=9;
break;

case 'A':
case 'a':
ans=10;
break;

case 'B':
case 'b':
ans=11;
break;

case 'C':
case 'c':
ans=12;
break;

case 'D':
case 'd':
ans=13;
break;

case 'E':
case 'e':
ans=14;
break;

case 'F':
case 'f':
ans=15;
break;
}
return ans;
}

string DecToStr(int num[],int length)
{
char x1;
string s,ss;
for(int i=0;i<length;i++)
{
x1=(char)num[i];
s+=x1;
}
return s;
}

int main()
{
vector<int> test;
int arr[16];
const char * srcfile = "c:\\1.txt";
const char * desfile = "d:\\2.txt";
char buffer[MAX];
char tmp[16];
int len;
ifstream file1(srcfile);
ofstream file2(desfile);
string strarr[16];
while(file1)
{
file1.getline(buffer,MAX);
string str(buffer);
char cc[3];
replace_all(str,"\t","");
replace_all(str," ","");
//cout<<str<<endl;
for (int i=0;i<str.length();i+=2)
{
strarr[i/2]=str.substr(i,2);
}
//cout<<arr[i];
for(i=0;i<16;i++)
{

arr[i]=strToDec(strarr[i]);
cout<<arr[i]<<" ";
}


string str1;
str1=DecToStr(arr,16);
file2.write(str1.c_str(),str1.length());

}
file1.close();
file2.close();
cout<<"写入完成!"<<endl;
return 0;
}


// char dgt[2];
// int x1;
// int i,j;
// unsigned long int y;
//
//
// s='b';
//
//
// if(s>='A')
// x1=(int)(s+10-'A');
// else
// x1=(int)(s-'0');
//
//
// cout<<x1<<endl;
sherrik 2009-04-17
  • 打赏
  • 举报
回复
acm?
  • 打赏
  • 举报
回复
贴代码看看.
jackyjkchen 2009-04-17
  • 打赏
  • 举报
回复
粘贴出来,CSDN不支持上传……囧得很

64,266

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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