Перейти к публикации
  • Сейчас на странице   Всего пользователей: 5   (0 пользователей, 5 гостей)

Hed-kun

Программирование, т. 5.1.

Рекомендованные сообщения

std::ifstream::pos_type filesize(const char* filename)

{

std::ifstream in(filename, std::ifstream::in | std::ifstream::binary);

in.seekg(0, std::ifstream::end);

return in.tellg();

}

 

2 ссылка гугла


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

ну так погугли, ебать

я так чтоб "по быстрому" нашёл только такой способ

 

в роли альтернативы можешь захуярить это через винапи (если это на винде) - в винапи есть GetFileSizeEx() и GetFileSize()

 

std::ifstream::pos_type filesize(const char* filename)

{

std::ifstream in(filename, std::ifstream::in | std::ifstream::binary);

in.seekg(0, std::ifstream::end);

return in.tellg();

}

 

2 ссылка гугла

там вроде как всё-равно по факту открывает этот файл в стриме, ему надо "не открывая"

Поделиться сообщением


Ссылка на сообщение

std::ifstream::pos_type filesize(const char* filename)

{

std::ifstream in(filename, std::ifstream::in | std::ifstream::binary);

in.seekg(0, std::ifstream::end);

return in.tellg();

}

 

2 ссылка гугла

ага спасибо, то что надо

Поделиться сообщением


Ссылка на сообщение
(изменено)

del


Изменено пользователем DIMAN123456789

Поделиться сообщением


Ссылка на сообщение
(изменено)

Может кто нибудь подсказать?

Почему у меня в паскале в цикле перевод из символа в число работает не правильно. Мне нужно считывать числа пока не будет точки. Я использую цикл while. Вообщем вот фрагмент программы:

read(ch);

while ch <>'.' do

begin

n:=ord(ch)-48;

inc(a[n]);

read(ch);

end;

Нужно увеличивать элемент массива с данным индексом, но это не важно. Вообщем если добавить строчку после присваивания n, writeln(n) и ввести к примеру цифру 5, то выведем 5 -35 -38. Что это?


Изменено пользователем Implatt

Поделиться сообщением


Ссылка на сообщение

потому что ты вводишь в консоль число 5, затем жмешь ввод

и в консоль попадает символ с кодом 53, что является аскии кодом цифры 5, затем символ с кодом 13, что является символом новой строки, а затем символ с кодом 10, что является символом возврата каретки

 

вдобавок ко всему, ты еще и сможешь читать только цифры, числа твоя программа не обрабатывает

 

читай через readln строку, а затем конверти ее в число. Была вроде функция StrToInt или что-то такое


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

потому что ты вводишь в консоль число 5, затем жмешь ввод

и в консоль попадает символ с кодом 53, что является аскии кодом цифры 5, затем символ с кодом 13, что является символом новой строки, а затем символ с кодом 10, что является символом возврата каретки

 

вдобавок ко всему, ты еще и сможешь читать только цифры, числа твоя программа не обрабатывает

 

читай через readln строку, а затем конверти ее в число. Была вроде функция StrToInt или что-то такое

Я не правильно написал видимо, по задаче нужно считывать именно цифры и в конце вывести по частоте их встречаемости. Получается лучше вводить их по одной. Как тогда исправить, чтобы цикл работал хорошо?


Изменено пользователем Implatt

Поделиться сообщением


Ссылка на сообщение

Модеры! Вставляйте код в теги <CODE>

плюсую, без тега наёбывается форматирование и любой код нечитаем

Поделиться сообщением


Ссылка на сообщение

потому что ты вводишь в консоль число 5, затем жмешь ввод

и в консоль попадает символ с кодом 53, что является аскии кодом цифры 5, затем символ с кодом 13, что является символом новой строки, а затем символ с кодом 10, что является символом возврата каретки

 

вдобавок ко всему, ты еще и сможешь читать только цифры, числа твоя программа не обрабатывает

 

читай через readln строку, а затем конверти ее в число. Была вроде функция StrToInt или что-то такое

Я не правильно написал видимо, по задаче нужно считывать именно цифры и в конце вывести по частоте их встречаемости. Получается лучше вводить их по одной. Как тогда исправить, чтобы цикл работал хорошо?

либо через readln читать построчно, если хочешь жмякать ввод

либо не жмякать ничего, кроме цифр

 

либо самому отсеивать всё, что не является числом


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

Всем привет! Вообщем такое дело, написал программу в паскале (вот условие 2572197a8798bdcdb87662d360d1e4ae.png) а она не работает, хотя, я уверен, что написал ее правильно. Вот, собственно, сама программа

Program Romashko;
var b,x,y: real;
begin
writeln ('Ââåäèòå x, y');
readln (x,y);
b:= exp(x-1)+arctan(y/sqrt(1-y*y));
write ('b=',b:7:3);
readln
end.

Скажите пожалуйста, что делать и если есть ошибка укажите на нее пожалуйста.

 

я мало уже что помню в паскале, но там вроде нет exp() и arctan() (там atan, если опять же память не изменяет)и в условии у тебя вообще арксинус, бля. возможно они в Mathe. Using Math пропиши вначале.

Пробовал - не помогло. А насчет того, что не правильно записано - тут все правильно, но почему-то ебаный PascalABC считает, что выражение записано не правильно :fffuuu:

после плследнешо ридлн ; забыл

 

Би май дарлинг

 

Поделиться сообщением


Ссылка на сообщение
после плследнешо ридлн ; забыл

Это паскаль - для последней строки, идущей перед end, не обязательно ставить ;

Поделиться сообщением


Ссылка на сообщение
(изменено)

Всем привет! Вообщем такое дело, написал программу в паскале (вот условие 2572197a8798bdcdb87662d360d1e4ae.png) а она не работает, хотя, я уверен, что написал ее правильно. Вот, собственно, сама программа

Program Romashko;
var b,x,y: real;
begin
writeln ('Ââåäèòå x, y');
readln (x,y);
b:= exp(x-1)+arctan(y/sqrt(1-y*y));
write ('b=',b:7:3);
readln
end.

Скажите пожалуйста, что делать и если есть ошибка укажите на нее пожалуйста.

 

я мало уже что помню в паскале, но там вроде нет exp() и arctan() (там atan, если опять же память не изменяет)и в условии у тебя вообще арксинус, бля. возможно они в Mathe. Using Math пропиши вначале.

Пробовал - не помогло. А насчет того, что не правильно записано - тут все правильно, но почему-то ебаный PascalABC считает, что выражение записано не правильно :fffuuu:

после плследнешо ридлн ; забыл

Ну тогда он просто вводит не те x и y.

 

Потому что 1-y*y должно быть > 0. Либо так

b:= exp(x-1)+arctan(y/sqrt(Abs(1-y*y)));

Все работает ок


Изменено пользователем F1sher

 

Би май дарлинг

 

Поделиться сообщением


Ссылка на сообщение

debian, ubuntu, mint?

 

для доты, редкого девелопмента для помощи людям уходить в армию, фильмов, музыки.

Поделиться сообщением


Ссылка на сообщение

debian, ubuntu, mint?

 

для доты, редкого девелопмента для помощи людям уходить в армию, фильмов, музыки.

добрый такой


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

debian, ubuntu, mint?

 

для доты, редкого девелопмента для помощи людям уходить в армию, фильмов, музыки.

Наверно посоветую убунту или минт (что больше по дизайну подойдет - на деле они одинаковы почти). дебиант там устарелые пакеты, он лучше под сервак годится.

Так бы посоветовал арч линукс - настроить под себя и все супер. Но тут не для новичка.


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

debian, ubuntu, mint?

 

для доты, редкого девелопмента для помощи людям уходить в армию, фильмов, музыки.

типо в военкомате работаешь, письма набираешь?


 

Би май дарлинг

 

Поделиться сообщением


Ссылка на сообщение

Так бы посоветовал арч линукс - настроить под себя и все супер. Но тут не для новичка.

challange accepted

76561198051636913.png

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...