0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 4
|
|||||||||||
1 | |||||||||||
Stof преобразует в int вместо float27.02.2019, 00:23. Показов 5327. Ответов 5
Нужно прочитать файл с последовательностью дробных чисел и преобразовать его в массив дробных чисел.
В чем проблема? Почему вместо 31.4 на 3 и 4 строке выводится 31? Добавлено через 19 минут
0
|
27.02.2019, 00:23 | |
Ответы с готовыми решениями:
5
ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int) Реализовать выведение данных с типом float, вместо int Функции float average(int arrray[],int from,int to) Почему при умножении разнотипных переменных (например, float и int) получается int? |
6107 / 3461 / 1406
Регистрация: 07.02.2019
Сообщений: 8,794
|
||||||
27.02.2019, 00:26 | 2 | |||||
Сообщение было отмечено mrbimax как решение
Решение
а так не проще?
1
|
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 4
|
|
27.02.2019, 00:40 [ТС] | 3 |
file имеет тип string же? Элемент m[i] - float.
Мне нужно считать строку до пробела, перевести ее в float и добавить в float-массив. Добавлено через 4 минуты Но на удивление работает. Можете объяснить - почему так? Как тип string преобразуется автоматически в float без использования функции stof? И мне всё также неясно, почему мой вариант не работает.
0
|
Вездепух
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,070
|
|
27.02.2019, 05:04 | 4 |
Из-за типичной ошибки - использования цикла с
!file.eof() - произошел вылет за пределы массива m . Далее поведение не определено.Распространенные ошибки Это что значит? С каких это пор file стало string? int main() а не void main()
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
|
||||||
27.02.2019, 06:53 | 5 | |||||
mrbimax, интереса ради.
Попробуйте цикл заменить на такой
0
|
6107 / 3461 / 1406
Регистрация: 07.02.2019
Сообщений: 8,794
|
||||||
27.02.2019, 11:20 | 6 | |||||
объект file это поток, аналогичный cin и cout, операции чтения и записи в поток предусматривают преобразование для стандартных типов, в вашем же коде выражения
Возможно не распознается мантисса, у функции stof есть второй параметр, в который записывается позиция последнего не распознанного символа, можете объявить переменную типа int value и передать в функцию stof(line,&value), что бы посмотреть в каком символе проблема и есть ли она вообще.
0
|
27.02.2019, 11:20 | |
27.02.2019, 11:20 | |
Помогаю со студенческими работами здесь
6
Как происходит преобразование int<<float<int Int в Float Int в float Преобразование int в float Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |