Я пытаюсь преобразовать целое число в символ для записи в файл, используя эту строку:
fputc(itoa(size, tempBuffer, 10), saveFile);
, и я получаю это предупреждение и сообщение:
предупреждение: неявное объявление 'itoa'
undefined ссылка на '_itoa'
Я уже включил stdlib.h и компилирую с помощью:
gcc -Wall -pedantic -ansi
Любая помощь будет принята с благодарностью, спасибо . HttpURLConnection connection = (HttpURLConnection) url.openConnection (); int length = connection.getContentLength (); // я получаю отрицательную длину InputStream is = (...
Вот мой код:
url = paths[0];
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int length = connection.getContentLength(); // i get negetive length
InputStream is = (InputStream) url.getContent();
byte[] imageData = new byte[length];
int buffersize = (int) Math.ceil(length / (double) 100);
int downloaded = 0;
int read;
while (downloaded < length) {
if (length < buffersize) {
read = is.read(imageData, downloaded, length);
} else if ((length - downloaded) <= buffersize) {
read = is.read(imageData, downloaded, length - downloaded);
} else {
read = is.read(imageData, downloaded, buffersize);
}
downloaded += read;
publishProgress((downloaded * 100) / length);
}
Bitmap bitmap = BitmapFactory.decodeByteArray(imageData, 0,
length);
if (bitmap != null) {
Log.i(TAG, "Bitmap created");
} else {
Log.i(TAG, "Bitmap not created");
}
is.close();
return bitmap;
Я посмотрел на это в документации по Java, и длина отрицательна по следующей причине:
«количество байтов содержимого или отрицательное число, если неизвестно. Если длина содержимого> известна, но превышает Long.MAX_VALUE, возвращается отрицательное число. "
В чем может быть причина этого? Я пытаюсь загрузить изображение. Я хотел бы отметить что это четвертый метод, которым я пытаюсь загрузить изображения. Остальные три упомянуты здесь .
Изменить:
По запросу, вот полный метод, который я использую.
protected Bitmap getImage(String imgurl) {
try {
URL url = new URL(imgurl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int length = connection.getContentLength();
InputStream is = (InputStream) url.getContent();
byte[] imageData = new byte[length];
int buffersize = (int) Math.ceil(length / (double) 100);
int downloaded = 0;
int read;
while (downloaded < length) {
if (length < buffersize) {
read = is.read(imageData, downloaded, length);
} else if ((length - downloaded) <= buffersize) {
read = is.read(imageData, downloaded, length
- downloaded);
} else {
read = is.read(imageData, downloaded, buffersize);
}
downloaded += read;
// publishProgress((downloaded * 100) / length);
}
Bitmap bitmap = BitmapFactory.decodeByteArray(imageData, 0,length);
if (bitmap != null) {
System.out.println("Bitmap created");
} else {
System.out.println("Bitmap not created");
}
is.close();
return bitmap;
} catch (MalformedURLException e) {
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
} catch (Exception e) {
System.out.println(e);
}
return null;
}