Форум программистов, компьютерный форум CyberForum.ru

fprintf не переводит на новую строку - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 16:47     fprintf не переводит на новую строку #1
C++
1
fprintf(fz,"%7s|%7s|%7s|%7s|%7s|\n ",Ndv1,Kd1,Mvx1,Nk1,Urash1,Nper1);
не хочет переводить на новую строчку не могу понять почему
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
12.05.2012, 16:56     fprintf не переводит на новую строку #2
Файл как открыт?
Avazart
Заблокирован
12.05.2012, 17:02     fprintf не переводит на новую строку #3
Ndv1,Kd1,Mvx1,Nk1,Urash1,Nper1 - 6-переменных
А %7s у тебя 5 шт
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,055
Записей в блоге: 10
Завершенные тесты: 1
12.05.2012, 17:04     fprintf не переводит на новую строку #4
Ты передаешь 6 параметров, а должен передавать 5 !
Avazart
Заблокирован
12.05.2012, 17:04     fprintf не переводит на новую строку #5
C++
1
fprintf(fz,"%7s|%7s|%7s|%7s|%7s|%7s|\n",Ndv1,Kd1,Mvx1,Nk1,Urash1,Nper1);
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
12.05.2012, 17:04     fprintf не переводит на новую строку #6
Да, точно. Параметров больше, чем в шаблоне.
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:06  [ТС]     fprintf не переводит на новую строку #7
с этим разобрался есть другая проблема почему у меня
C++
1
fprintf(fz,"%f|%f|%f|%f|%f|%d|\n",Ndv,Kd,Mvx,Nk[i],Urash[i],Nperedaci[index[i]]);
выводиться Ndv 7 знаков после точки как можно их сделать меньше а то получаеться слишком много нулей
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,055
Записей в блоге: 10
Завершенные тесты: 1
12.05.2012, 17:11     fprintf не переводит на новую строку #8
%A.Bf , где A - общее кол-во знаков включая точку, B - кол-во знаков после точки
или просто %.Bf , где B - кол-во знаков после точки
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:17  [ТС]     fprintf не переводит на новую строку #9
lazybiz, а как указать всю ширину что бы например это число занимало только 7 позиций и все не больше а то получаеться что таблица ломаеться
castaway
12.05.2012, 17:20
  #10

Не по теме:

не так

sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:23  [ТС]     fprintf не переводит на новую строку #11
у меня такая вот ситуация некрасивая как выставить что бы не сбилось
вот такие два числа в таблице и сбиваються
100.00000|
50.00000|
вот оно сбилось как сделать что бы не сбивалось просто я же не могу предсказать какие будут числа надо что бы коректно таблица работала
Avazart
Заблокирован
12.05.2012, 17:23     fprintf не переводит на новую строку #12
Я использовал бы iostream + iomanip
cout<<setw(5)<<var;
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:30  [ТС]     fprintf не переводит на новую строку #13
так мне в файл записывать надо

Добавлено через 1 минуту
есть вариант как преобразовать в строку и выводить в файл
Avazart
Заблокирован
12.05.2012, 17:30     fprintf не переводит на новую строку #14
Тогда fstream + iomanip

А вообще
Спецификации полей формата начинаются с символа % и имеют вид:
%[flags][width][.precision][F|N|h|l|L]type
Архангельский "Справочная часть книги" стр 1057
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,055
Записей в блоге: 10
Завершенные тесты: 1
12.05.2012, 17:31     fprintf не переводит на новую строку #15
Делай фиксированную ширину и фиксированное кол-во знаков после запятой, например всего 7 и два знака после запятой: %7.2f и все у тебя в таблице будет ровно.
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:37  [ТС]     fprintf не переводит на новую строку #16
все хорошо так и сделал вывелось красиво кроме последнего столбца там вот так вышло
10240.04|
8435.30|
Avazart
Заблокирован
12.05.2012, 17:38     fprintf не переводит на новую строку #17
Делай фиксированную ширину и фиксированное кол-во знаков после запятой, например всего 7 и два знака после запятой: %7.2f и все у тебя в таблице будет ровно.
Не совсем [width] -Ширина поля — минимальное число выводимых символов (не максимальное!)
Как вариан попробывать использовать между полями '\t' -табуляцию.

Да еще открывай файл MSWord-ом, а не блокнотом ( блокнот неправильно отображает)
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:42  [ТС]     fprintf не переводит на новую строку #18
Avazart, табуляция помогла все красиво теперь
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
12.05.2012, 17:47     fprintf не переводит на новую строку #19
Если диапазон чисел заранее неизвестен, то и табуляция может не помочь. Тогда стоит задуматься о научной нотации выводимых чисел. Спецификаторы %e или %g.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2012, 17:50     fprintf не переводит на новую строку
Еще ссылки по теме:

C++ Перенос на новую строку
fstream на новую строку C++
Переход на новую строку C++
Переход на новую строку C++
C++ Написать программу которая переводит строку в обратную сторону

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:50  [ТС]     fprintf не переводит на новую строку #20
grizlik78, я могу предпложить что числа не будут слишком большими тогда все хорошо
Yandex
Объявления
12.05.2012, 17:50     fprintf не переводит на новую строку
Ответ Создать тему
Опции темы

Текущее время: 06:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru