首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

c语言结构体简单有关问题 欢迎指教

2013-10-27 
c语言结构体简单问题 欢迎指教出现这样的错误时为什么啊c语言结构[解决办法]在字符串后面加一个终止符试试

c语言结构体简单问题 欢迎指教
c语言结构体简单有关问题 欢迎指教
出现这样的错误时为什么啊 c语言 结构
[解决办法]
在字符串后面加一个终止符试试
[解决办法]
struct houxuanren          /* 结构体数组*/
{
char name[20];
int count;
}hxrname[3]={{"liming",0},{"hujinsao",0},{"jiangzemin",0}};


[解决办法]
在XE4上测试了代码没有问题
你把main函数改成int的,给个返回值试试
[解决办法]

引用:
Quote: 引用:

在XE4上测试了代码没有问题
你把main函数改成int的,给个返回值试试

会不会是由于用的vc2008的的问题


有可能,毕竟编译器不同
你这个工程应该是C语言,不是C++的吧?
[解决办法]
在BCB里面可以正常编译,把scanf_s修改成scanf即可

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include<stdio.h>
#include<string.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct houxuanren          /* 结构体数组*/
{
    char name[20];
    int count;
}hxrname[3]={"liming",0,"hujinsao",0,"jiangzemin",0};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int i,j;char hxr_name[20];
 
     for(i=1;i<=10;i++)
     {
        //scanf_s("%s",hxr_name);
        scanf("%s",hxr_name);
        for(j=0;j<3;j++)
            if(strcmp(hxr_name,hxrname[j].name)==0)
                hxrname[j].count++;
     }
     printf("\n");
     for(i=0;i<3;i++)
        printf("%5s;%d\n",hxrname[i].name,hxrname[i].count);
}
//---------------------------------------------------------------------------

[解决办法]
在VS中正常编译
#include<stdio.h>
#include<string.h>
struct houxuanren          /* 结构体数组*/
{
char name[20];
int count;
}hxrname[3]={"liming",0,"hujinsao",0,"jiangzemin",0};
void main()
{
int i,j;char hxr_name[20];
for(i=1;i<=10;i++)
{
scanf_s("%s",hxr_name);
for(j=0;j<3;j++)
if(strcmp(hxr_name,hxrname[j].name)==0)
hxrname[j].count++;
}
printf("\n");
for(i=0;i<3;i++)
printf("%5s;%d\n",hxrname[i].name,hxrname[i].count);
}
[解决办法]
hxr_name的空间小了,导致数组溢出,将语句(char hxr_name[20];)修改(char hxr_name[200];)试试

热点排行