小编Jab*_*cky的帖子

char数组初始化程序中的多余元素错误

我一直在尝试执行以下代码。.但是,我一遍又一遍地遇到相同的错误,我不知道为什么!

我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

int main(void){

    int randomNum;
    char takenWords[4];
    char words[20]={"DOG", "CAT", "ELEPHANT", "CROCODILE", "HIPPOPOTAMUS", "TORTOISE", "TIGER", "FISH", "SEAGULL", "SEAL", "MONKEY", "KANGAROO", "ZEBRA", "GIRAFFE", "RABBIT", "HORSE", "PENGUIN", "BEAR", "SQUIRREL", "HAMSTER"};


    srand(time(NULL));

    for(int i=0; i<4; i++){
        do{
            randomNum = (rand()%20);
        takenWords[i]=words[randomNum];
        }while((strcmp(&words[randomNum], takenWords) == 0)&&((strcmp(&words[randomNum], &takenWords[i])==0)));
        printf("%s\n", &words[randomNum]);
    }
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我已经计算了我在数组中输入的元素数量,并且它们不超过20个!

另外,为什么我总是收到“隐式转换丢失整数精度错误”的信息?

c arrays char

2
推荐指数
2
解决办法
1万
查看次数

如何在编辑控件上获得左键单击通知?

我想跟踪单击左键单击编辑控件的事件.我重写PretranslateMessage函数如下:

BOOL CMyClass::PreTranslateMessage(Msg* pMsg)
    {
       switch(pMsg->message)

       case WM_LBUTTONDOWN:
       {
          CWnd* pWnd = GetFocus();
          if (pWnd->GetDlgCtrlID == MY_EDIT_CTRL_ID)
             {
                //Do some thing
             }
          break;
       }
    }
Run Code Online (Sandbox Code Playgroud)

问题是当我点击编辑控件时,所有其他控件都被禁用(例如按钮不响应点击等)

我该如何解决这个问题?或者如何在编辑框中跟踪点击通知?

c++ mfc editcontrol

2
推荐指数
1
解决办法
403
查看次数

这段代码有什么区别?

#include <stdio.h>

int main(void)
{        
  double aRate[10] = { 0.0, 0.1, 0.25, 0.5, 0.5, 0.6, 0.65, 0.8, 0.82, 0.97};
  int nAge = 0, i = 0, nFee = 1000;
  int a = 0;

  printf("%d  : \t%d \n", i, (int)(nFee*aRate[2]));
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,此代码的结果为0:250,但如果我省略这样的括号,

printf("%d  : \t%d \n", i, (int)nFee*aRate[2]);
Run Code Online (Sandbox Code Playgroud)

那么结果是0:0.

为什么是

printf("%d  : \t%d \n", i, (int)(nFee*aRate[2]));
Run Code Online (Sandbox Code Playgroud)

printf("%d  : \t%d \n", i, (int)nFee*aRate[2]);
Run Code Online (Sandbox Code Playgroud)

不同?

它与优先顺序有关吗?

c

2
推荐指数
1
解决办法
74
查看次数

C-Socket编程-《未定义的引用》

我是 C 套接字编程的初学者。我在书中得到了代码,当我编译时,这些是以下带有未定义引用的错误。请给一个提示来纠正这个问题!谢谢!

代码:

#include <stdio.h>
#include <winsock.h>
#include <winsock2.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define RCVBUFSIZE 32
int main(int argc, char *argv[]){
int sock;
struct sockaddr_in echoServAddr;
unsigned short echoServPort;
char *servIP;
char *echoString;
char echoBuffer[RCVBUFSIZE];
unsigned int echoStringLen;
int bytesRcvd, totalBytesRcvd;
if(argc>3 || argc>4){
    printf("Usage: %s <Server IP> <Echo Word> [<Echo Port>\n",argv[0]);
    exit(1);
}
servIP=argv[1];
echoString=argv[2];
if(argc==4){
    echoServPort=atoi(argv[3]);
}
else{
    echoServPort=7;
}
if((sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP))<0){
    printf("socket() failed!");
}
memset(&echoServAddr,0,sizeof(echoServAddr));
echoServAddr.sin_family=AF_INET;
echoServAddr.sin_addr.s_addr=inet_addr(servIP);
echoServAddr.sin_port=htons(echoServPort);
if (connect(sock, (struct sockaddr *) &echoServAddr, sizeof(echoServAddr)) …
Run Code Online (Sandbox Code Playgroud)

c sockets tcpclient dev-c++ undefined-reference

2
推荐指数
1
解决办法
5587
查看次数

从函数返回的数组值错误

我正在制作这个程序,其中我的main函数调用一个函数,该函数在计算后返回一个数组.我已经检查过计算是否在本地函数内部.但是当我将该数组返回到'main'函数时,我只能打印一次正确的值,并且在其他时间打印错误的值.

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
int* getJoinedPipes(int input1_size, int* input1,int* output_size){
  int i,j,temp;
  int op1[input1_size-1];
  *output_size = input1_size - 1;
  for(i=0; i<input1_size; i++){
    for(j=i+1; j<input1_size; j++){
      if(input1[i] > input1[j]){
        temp     = input1[i];
        input1[i] = input1[j];
        input1[j] = temp;
      }
    }
  }

  op1[0]=input1[0] + input1[1];
  for(i=1;i<input1_size-1;i++){
    op1[i] = op1[i-1]+input1[i+1];
  }
  //printf("%d\n",op1[2]);

  return op1; 
}

int main() {
  int output_size;
  int* output;

  int ip1_size = 0;
  int ip1_i;
  scanf("%d\n", &ip1_size);
  int ip1[ip1_size]; …
Run Code Online (Sandbox Code Playgroud)

c arrays

2
推荐指数
1
解决办法
438
查看次数

即使控件具有焦点,焦点矩形也不显示

我在 MFC 应用程序中遇到以下问题:

控件中的焦点矩形并不总是显示出来,即使控件具有焦点。

重现步骤:

  • 启动应用程序
  • 点击控件
  • 未显示焦点矩形: 在此处输入图片说明
  • 使用 Alt-Tab 切换到另一个应用程序
  • 切换回我的应用程序
  • 点击控件
  • 现在焦点矩形按预期显示: 在此处输入图片说明
  • 从现在开始,控件上的焦点矩形在获得焦点时会正确显示。

这就像有两种“模式”,一种是显示焦点矩形,另一种是不显示焦点矩形。

其他事实:

  • 控件确实具有焦点,因为使用向上/向下箭头键可以更改所选项目
  • 它在 Windows 10 上运行
  • 当我们处于未显示焦点矩形的“模式”时,程序的行为保持正确。

有没有人遇到过这样的问题?我想知道这是否是一些“聪明的”微软​​功能。

winapi mfc

2
推荐指数
1
解决办法
697
查看次数

如何使用 ULARGE_INTEGER 进行算术运算

我有一个应用程序,我不断检查磁盘空间并将其与特定值进行比较。现在磁盘空间计算如下:

ULARGE_INTEGER p1;
ULARGE_INTEGER p2;
ULARGE_INTEGER p3;
GetDiskFreeSpaceEx(".", &p1, &p2, &p3); 
Run Code Online (Sandbox Code Playgroud)

现在从上面的方法我得到了变量 p3 中的可用空间。现在我如何将它与一个正常的整数值进行比较(算术运算)。此外,此代码必须在 32 位和 64 位平台上工作。或者如果有任何其他选项来计算可用磁盘空间?谢谢

c c++ windows winapi

2
推荐指数
1
解决办法
1000
查看次数

char 指针中怎么能包含字符串呢?

如果我在 C 程序中定义一个 char 指针并将其初始化为“某个字符串”

有人可以解释一下应该在其中保存地址的 char 指针如何在其中保存字符串吗?

这不是和指针的定义矛盾吗?我在这里缺少什么?

例如 :

char pointer=" how is it possible at all ? ";
printf("%s",pointer);
Run Code Online (Sandbox Code Playgroud)

c

2
推荐指数
1
解决办法
2174
查看次数

为什么在C99中不允许隐式声明gets()?

我开始学习C语言编程,这是我所指代的代码,其中显示了一些源代码,gets()而我的IDLE也认识到它。但是仍然在编译时,我的编译器不同意它。

谁能帮我吗?我gets()在main函数中使用clang作为编译器。

c gets c99 clang cs50

2
推荐指数
1
解决办法
5213
查看次数

关于链表中结构语法的问题

我对链式列表中的结构的语法有疑问:

我有这个链表结构:

typedef struct      s_list
{
    void            *content;
    size_t          content_size;
    struct s_list   *next;
} t_list;
Run Code Online (Sandbox Code Playgroud)

我想将void*内容指向此结构:

typedef struct      s_minos
{
    char            **minos;
}                   t_minos;
Run Code Online (Sandbox Code Playgroud)

但是当我试图像这样访问我的char**minos时:

printf("%s\n", head->content->singleminos->minos[i]);
Run Code Online (Sandbox Code Playgroud)

我宣布:s_minos *singleminos; 我分配了:head->content = singleminos;

它不起作用.

我该如何正确访问我的数据?

c struct linked-list

2
推荐指数
1
解决办法
56
查看次数