Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
1

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

12.05.2012, 16:47. Показов 4253. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
fprintf(fz,"%7s|%7s|%7s|%7s|%7s|\n ",Ndv1,Kd1,Mvx1,Nk1,Urash1,Nper1);
не хочет переводить на новую строчку не могу понять почему
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2012, 16:47
Ответы с готовыми решениями:

Не переводит на новую строку!
#include <stdio.h> #include <string.h> int main() { char a,b; //Длинные числа int...

Acstime переводит на новую строку
Добрый день. Хочу сделать void, который будет печатать цветной текст с временем. Но появилась такая...

Функция переводит на новую строку
Наткнулся на функцию, которая отправляет сообщение пользователю с определенным именем (для чата на...

Fprintf не записывает новую строку в файл
Вот собственно реализация двух функций #define _CRT_SECURE_NO_WARNINGS #include <stdio.h>...

20
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
12.05.2012, 16:56 2
Файл как открыт?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.05.2012, 17:02 3
Ndv1,Kd1,Mvx1,Nk1,Urash1,Nper1 - 6-переменных
А %7s у тебя 5 шт
1
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
12.05.2012, 17:04 4
Ты передаешь 6 параметров, а должен передавать 5 !
1
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.05.2012, 17:04 5
C++
1
fprintf(fz,"%7s|%7s|%7s|%7s|%7s|%7s|\n",Ndv1,Kd1,Mvx1,Nk1,Urash1,Nper1);
1
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
12.05.2012, 17:04 6
Да, точно. Параметров больше, чем в шаблоне.
1
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:06  [ТС] 7
с этим разобрался есть другая проблема почему у меня
C++
1
fprintf(fz,"%f|%f|%f|%f|%f|%d|\n",Ndv,Kd,Mvx,Nk[i],Urash[i],Nperedaci[index[i]]);
выводиться Ndv 7 знаков после точки как можно их сделать меньше а то получаеться слишком много нулей
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
12.05.2012, 17:11 8
%A.Bf , где A - общее кол-во знаков включая точку, B - кол-во знаков после точки
или просто %.Bf , где B - кол-во знаков после точки
1
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:17  [ТС] 9
lazybiz, а как указать всю ширину что бы например это число занимало только 7 позиций и все не больше а то получаеться что таблица ломаеться
0
castaway
12.05.2012, 17:20
  #10

Не по теме:

не так

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

Добавлено через 1 минуту
есть вариант как преобразовать в строку и выводить в файл
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.05.2012, 17:30 14
Тогда fstream + iomanip

А вообще
Спецификации полей формата начинаются с символа % и имеют вид:
%[flags][width][.precision][F|N|h|l|L]type
Архангельский "Справочная часть книги" стр 1057
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
12.05.2012, 17:31 15
Делай фиксированную ширину и фиксированное кол-во знаков после запятой, например всего 7 и два знака после запятой: %7.2f и все у тебя в таблице будет ровно.
1
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:37  [ТС] 16
все хорошо так и сделал вывелось красиво кроме последнего столбца там вот так вышло
10240.04|
8435.30|
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.05.2012, 17:38 17
Делай фиксированную ширину и фиксированное кол-во знаков после запятой, например всего 7 и два знака после запятой: %7.2f и все у тебя в таблице будет ровно.
Не совсем [width] -Ширина поля — минимальное число выводимых символов (не максимальное!)
Как вариан попробывать использовать между полями '\t' -табуляцию.

Да еще открывай файл MSWord-ом, а не блокнотом ( блокнот неправильно отображает)
1
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:42  [ТС] 18
Avazart, табуляция помогла все красиво теперь
0
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
12.05.2012, 17:47 19
Если диапазон чисел заранее неизвестен, то и табуляция может не помочь. Тогда стоит задуматься о научной нотации выводимых чисел. Спецификаторы %e или %g.
1
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
12.05.2012, 17:50  [ТС] 20
grizlik78, я могу предпложить что числа не будут слишком большими тогда все хорошо
0
12.05.2012, 17:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2012, 17:50
Помогаю со студенческими работами здесь

Не переводит на новую строку
Почему сишная функция не хочет переводить текст на новую строку(\n)? szCALL MACRO sz CALL @F...

\n не переводит новую строку после цикла while
Есть рабочая программа, которая проверяет условие не убывания цифр в числе. Для того, чтобы...

ENTER переводит на новую строку только при двойном нажатии в консоле
ENTER переводит на новую строку только при двойном нажатии в консоле, но это если написать такой...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru