void CJiangxuejin::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
int sum, all = 0, max = 0;
CString str,result;
int i;
char str1[1000];
char name[100], topname[100];
int chengji, pingyi, lunwen;
char ganbu, xibu;
while(n--)
{
GetDlgItem(IDC_EDIT2)->GetWindowText(str);
sum = 0;
for( i = 0; i < str.GetLength(); ++i)
str1[i] = str[i];
str1[i+1] = '\0';
sscanf(str1, "%s %d %d %c %c %d", name, &chengji, &pingyi, &ganbu, &xibu, &lunwen);
if(chengji > 80 && lunwen >= 1) sum += 8000;
if(chengji > 85 && pingyi > 80) sum += 4000;
if(chengji > 90) sum += 2000;
if(chengji > 85 && xibu == 'Y') sum += 1000;
if(pingyi > 80 && ganbu == 'Y') sum += 850;
if(sum > max)
{
max = sum;
strcpy(topname, name);
}
all += sum;
}
MessageBox(_T("数据处理完毕"));
result.Format(_T("%s\n\r%d\n\r%d\n\r"), topname, max, all);
GetDlgItem(IDC_EDIT3)->SetWindowText(result);}为什么输出是乱码啊。
{
// TODO: 在此添加控件通知处理程序代码
int sum, all = 0, max = 0;
CString str,result;
int i;
char str1[1000];
char name[100], topname[100];
int chengji, pingyi, lunwen;
char ganbu, xibu;
while(n--)
{
GetDlgItem(IDC_EDIT2)->GetWindowText(str);
sum = 0;
for( i = 0; i < str.GetLength(); ++i)
str1[i] = str[i];
str1[i+1] = '\0';
sscanf(str1, "%s %d %d %c %c %d", name, &chengji, &pingyi, &ganbu, &xibu, &lunwen);
if(chengji > 80 && lunwen >= 1) sum += 8000;
if(chengji > 85 && pingyi > 80) sum += 4000;
if(chengji > 90) sum += 2000;
if(chengji > 85 && xibu == 'Y') sum += 1000;
if(pingyi > 80 && ganbu == 'Y') sum += 850;
if(sum > max)
{
max = sum;
strcpy(topname, name);
}
all += sum;
}
MessageBox(_T("数据处理完毕"));
result.Format(_T("%s\n\r%d\n\r%d\n\r"), topname, max, all);
GetDlgItem(IDC_EDIT3)->SetWindowText(result);}为什么输出是乱码啊。
解决方案 »
- 用MFC如何实现透明的画笔?
- API中关于缓存DC的使用
- VC 能在类中定义本类对象吗?
- 在oncancel()或者onok()之后的代码为什么还能执行?这样做有什么不好?
- 5000¥能不能买个简单批处理图象处理源程序呀?
- 关于怎样实现在vc环境下以所见即所得的方式实现对话框的打印
- 简单问题,以下语句有问题怎么修改好呢?
- 帮帮我:一个对话框程序原本已经可以运行,但我在其中删了两个控件后就无法运行了,该怎么办?
- Linux下使用Socket跟在VC++6.0下(非MFC程序)使用有区别么?
- 500个线程访问网页 CPU占用高
- CoCreateIntance问题
- 开发ATL复合控件(ATL Composite Control)的问题?
str1[i] = str[i];
str1[i+1] = '\0'; for( i = 0; i < str.GetLength(); i++)
str1[i] = str[i];
str1[i] = '\0'; sscanf(str1, "%s %d %d %c %c %d", name, &chengji, &pingyi, &ganbu, &xibu, &lunwen);
看看name是什么
str1[i] = str[i];
str1[i+1] = '\0';
一个是宽字节,一个是窄字节
怎么能赋值
cstring在unicode下是宽字节的
VS2003以上版本默认使用Unicode编码方式
请问我要怎么才能达到目的呢?
改为sscanf(str1, L"%s %d %d %c %c %d", name, &chengji, &pingyi, &ganbu, &xibu, &lunwen);
试试