2013-11-15 30 views
-2
client.c:60:17: warning: format '%d' expects argument of type 'int', but argument 2 has type 'int *' [-Wformat] 

client.c:63:17: warning: format '%d' expects argument of type 'int', but argument 2 has type 'int *' [-Wformat] 

下,這是代碼解決這個錯誤:請誰可以幫我在UNIX

#include <stdio.h> 
#include <netinet/in.h> 
#include <sys/socket.h> 
#include <arpa/inet.h> 
#include <string.h> 
#include <stdlib.h> 
#include <unistd.h> 

int main(int argc , char ** argv) 
{ 

     if(argc != 3) //check for parameters 
     { 
       printf("usage : a.out <IP=127.0.0.1> <Port number=22033>\n"); 
       return 0; 
     } 
    //int x; 
     int    sockfd , port = 0 ; 
     int   intger[101] , buff[101]; 
     struct sockaddr_in  servaddr; 

     port = atoi(argv[2]); //convert port number from string to integer 


     bzero(&servaddr,sizeof(servaddr)); //reset the servaddr 
     servaddr.sin_family = AF_INET; 
     servaddr.sin_port = htons(port); 
     inet_pton(AF_INET, argv[1], &servaddr.sin_addr); 

     sockfd = socket(AF_INET, SOCK_STREAM, 0); //new socket 

     bzero(buff,101); //reset the buffer 
    bzero(intger,101); // 





connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); //connect to the server 
       bzero(buff,101); //reset the buffer 


//for(;;){ 

       printf("Please Enter an Integer :"); 

       scanf("%d", intger); //reading from the user 

       write(sockfd , intger , 300); //sending the integer to the server 

       printf("Sending %d to the server\n" , intger); 

       printf("Waiting for server reply ...\n"); 

       read(sockfd , buff , 300); 

       printf("Received %d from the server\n" , buff); 

       //bzero(buff,300); 

       printf("\n"); 
//} 

     return 0; 
} 
+1

請張貼您的代碼。 –

+0

John Kugelman我已經下載了代碼 – joys

回答

3

我猜你正在做這樣的事情printf("%d",x);,因爲你還沒有發佈任何代碼。

在上面的例子中,你似乎通過x作爲int*。 printf期待int

編輯:看看你的代碼,你使用printf並通過intgr,但intgr是一個數組。

因此,對於您的代碼行:

printf("Sending %d to the server\n" , intger);

應該是這樣的(它打印數組中的第一項):

printf("Sending %d to the server\n" , intger[0]);

+0

我發佈了你可以看到的代碼。 – joys

+0

謝謝太多 – joys

+0

這是怎麼一回事 server.c :(。text + 0x1b8):未定義的引用'str_echo' – joys

0

不會printf(「%d」,& x);

工作嗎?如果它是一個指向int的指針,它指向的數據是int,還是我完全忘記了我所知道的所有C?

+1

這是'* x'如果'x'是'int *'類型的。否則,'&x'將是'int **'類型。 – Neet

相關問題