我一直在尝试执行以下代码。.但是,我一遍又一遍地遇到相同的错误,我不知道为什么!
我的代码:
#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个!
另外,为什么我总是收到“隐式转换丢失整数精度错误”的信息?
我想跟踪单击左键单击编辑控件的事件.我重写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)
问题是当我点击编辑控件时,所有其他控件都被禁用(例如按钮不响应点击等)
我该如何解决这个问题?或者如何在编辑框中跟踪点击通知?
#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 套接字编程的初学者。我在书中得到了代码,当我编译时,这些是以下带有未定义引用的错误。请给一个提示来纠正这个问题!谢谢!
代码:
#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) 我正在制作这个程序,其中我的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) 我在 MFC 应用程序中遇到以下问题:
控件中的焦点矩形并不总是显示出来,即使控件具有焦点。
重现步骤:
这就像有两种“模式”,一种是显示焦点矩形,另一种是不显示焦点矩形。
其他事实:
有没有人遇到过这样的问题?我想知道这是否是一些“聪明的”微软功能。
我有一个应用程序,我不断检查磁盘空间并将其与特定值进行比较。现在磁盘空间计算如下:
ULARGE_INTEGER p1;
ULARGE_INTEGER p2;
ULARGE_INTEGER p3;
GetDiskFreeSpaceEx(".", &p1, &p2, &p3);
Run Code Online (Sandbox Code Playgroud)
现在从上面的方法我得到了变量 p3 中的可用空间。现在我如何将它与一个正常的整数值进行比较(算术运算)。此外,此代码必须在 32 位和 64 位平台上工作。或者如果有任何其他选项来计算可用磁盘空间?谢谢
如果我在 C 程序中定义一个 char 指针并将其初始化为“某个字符串”
有人可以解释一下应该在其中保存地址的 char 指针如何在其中保存字符串吗?
这不是和指针的定义矛盾吗?我在这里缺少什么?
例如 :
char pointer=" how is it possible at all ? ";
printf("%s",pointer);
Run Code Online (Sandbox Code Playgroud) 我开始学习C语言编程,这是我所指代的代码,其中显示了一些源代码,gets()而我的IDLE也认识到它。但是仍然在编译时,我的编译器不同意它。
谁能帮我吗?我gets()在main函数中使用clang作为编译器。
我对链式列表中的结构的语法有疑问:
我有这个链表结构:
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;
它不起作用.
我该如何正确访问我的数据?