Имейте в виду, что когда вы пишете символ в файл, он, вероятно, будет байтом, по большей части в любом случае.
#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
char *str = "Hello";
char *strC = "Hello again!";
qint64 size1;
qint64 size2;
QFile* file = new QFile("/home/nick/tf.txt");
file->open(QFile::WriteOnly | QFile::Truncate);
file->write(str);
size1 = file->size();
file->close();
file->open(QFile::WriteOnly | QFile::Truncate);
file->write(strC);
size2 = file->size();
file->close();
delete file;
QString num1 = QString::number(size1);
QString num2 = QString::number(size2);
if (size1 < size2)
{
qDebug() << "Returning true";
qDebug() << "Size 1 is: " + num1;
qDebug() << "Size 2 is: " + num2;
return true;
}
else
{
return false;
}
return a.exec();
}
Немного изменил ваш код.Затем получается:
Returning true
"Size 1 is: 5"
"Size 2 is: 12"
Посмотрите, как размер файла соответствует количеству символов?Каждый символ является байтом, поэтому он выглядит так, как будто он насчитал символы.