LinuxForum.Fans
Тема

format ‘%d’ expects argument of type ‘int’, but argument 2 has type

Автор: trung_bui 7 сообщений 930 просмотров
18.05.2017 17:46 · отредактировано #423094
text

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>

int main() { int fd[2]; size_t size=0; char str[] = "a"; char resstring[2]; long i=0;

if(pipe(fd) < 0) { printf("Can\'t create pipe\n"); return -1; } while (size!=-1) { i++; size = write(fd[1], str, 1); printf("size: +%d byte, %d bytes total\n",size, i); } size = read(fd[0], resstring, 2); printf("%s\n",resstring); close(fd[1]); close(fd[0]); return 0; }

warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘size_t’
Что это значит?Исправьте пожалуйста

18.05.2017 17:57 #423097

А где в коде %d?

18.05.2017 18:37 #423103

ой я не то код скинул=))
исправил уже
посмотрите

18.05.2017 22:48 #423116

trung.bui, я не спец по C/C++, но рекомендую попробовать так:

text
printf("size: +%d byte, %d bytes total\n", (int)size, i);
19.05.2017 09:55 #423125

Перенёс тему в более подходящий для неё раздел.

19.05.2017 10:30 #423127

У тебя size имеет тип size_t, а не int. Попробуй исправить как предложил Rizado.

19.05.2017 13:19 #423130

да я уже исправил)
спс большое!!

Войдите или зарегистрируйтесь, чтобы ответить.