Перейти к содержимому

Как перейти на новую строку в си

  • автор:

Вывод в языке C++ через cout

Для стандартного вывода (вывода на экран) в языке C++ используется объект cout и операторы »

Для вывода значений переменных a и b через пробел так:

В этом примере мы даем команду сначала вывести значение переменной a, затем строку из одного пробела, затем вывести значение переменной b.

Для перехода на следующую строку нужно либо вывести специальный символ ‘\n’, либо использовать объект endl . Приведем примеры использования обоих способов для вывода значений переменных в отдельных строках:

Через cout можно выводить все стандартные типы данных — целые и действительные числа, символы, строки (как C-строки, так и объекты string ), заботиться о задании типов данных при этом не нужно, компилятор автоматически распознает необходимые типы.

Для использования стандартного ввода-вывода в языке C++ необходимо подключить заголовочный файл iostream :

Задание ширины поля вывода

Есть два способа управления выводом — через вызовы метода объекта cout (например, cout.width(20) ) или при помощи «манипуляторов» ( cout

Второй способ удобней, поэтому рассмотрим его. Для использования манипуляторов необходимо подключить заголовочный файл iomanip :

Для задания ширины поля вывода одного значения используется манипулятор setw с одним параметром — шириной поля вывода. Например:

выведет значение переменной a в поле шириной 10 символов. Аналогично правилам вывода в языке C, по умолчанию осуществляется выравнивание выводимого значения по правому краю (перед выводимым значением добавляются пробелы), если же число содержит больше символов, чем ширина поля, то будут выведены все символы.

Манипулятор setw влияет только на значение ширины поля вывода для следующего выводимого значения, если нужно задать значение ширины поля вывода для двух чисел, то это нужно делать перед выводом каждого значения.

Манипулятор setfill с одним параметром типа char позволяет задать символ-«заполнитель», который будет использоваться вместо пробела для заполнения поля. Например, вывести время в формате HH:MM (ровно по две цифры для вывода часов и минут) можно следующим образом:

Заметим, что манипулятор setfill действует постоянно (до следующего вызова setfill ), не нужно устанавливать его перед выводом каждого значения.

Также как и в языке C можно задавать тип выравнивания внутри поля. Выравнивание бывает левым, правым и внутренним. Внутреннее выравнивание означает, что сначала выводится знак числа (если число отрицательное), затем — пробелы, затем — цифры числа. Для задания выравнивания используются манипуляторы left , right , internal .

Примеры использования различных типов выравнивания:

[Язык C] Перенос строки оператора printf

Компьютерный журнал айтишника

Подзабыл, как правильно «резать» длинные куски printf, поэтому решил написать эту шпаргалку.

Допустим у вас длиннющее выражение printf и нужно его разбить на несколько небольших для удобочитаемости (или чтобы влезало при встраивании на сайт, например). Есть три способа:

printf("New line " "please");
printf("New line \ please");
printf("New line "); printf("please");

Такие дела. Нельзя просто так взять и… разорвать строку внутри кавычек. Однако помните, что можно смело это делать для аргументов, например, так:

printf("New %d line %c", argument1, argument2);

Как на Си реализовать ввод в файл с новой строки?

P.S. Такими формулировками вопросов можно же людям весь мозг сломать. И вообще это в Development должно быть.

xaizek ★★★★★
( 04.11.17 16:43:28 MSK )
anonymous
( 04.11.17 16:44:57 MSK )

#include #include #include int main(void) < FILE *fp = NULL; size_t filesize = 0; char *filecontents = NULL; const char *strfilewrite = "lor is a wonderful site"; // разумное чтение fp = fopen("file.txt", "r"); if (fp == NULL) < fprintf(stderr, "open file error\n"); return -1; >fseek(fp, 0L, SEEK_END); filesize = ftell(fp); fseek(fp, 0L, SEEK_SET); filecontents = (char *) malloc((filesize +1) * sizeof(char)); if (filecontents == NULL) < fprintf(stderr, "mem alloc error\n"); return -1; >fread(filecontents, sizeof(char), filesize, fp); *(filecontents + filesize) = '\0'; fprintf(stdout, "%s\n", filecontents); free(filecontents); fclose(fp); // разумная запись fp = fopen("file.txt", "a+"); fwrite(strfilewrite, sizeof(char), strlen(strfilewrite), fp); fclose(fp); return 0; >

как-то так.. вне проверял, тут печатал.

cherry
( 05.11.17 13:53:22 MSK )
Ответ на: комментарий от xaizek 04.11.17 16:43:28 MSK

И вообще это в Development должно быть.

Может, он ядро переписывает, бгг.

Virtuos86 ★★★★★
( 05.11.17 13:55:36 MSK )
Ответ на: комментарий от cherry 05.11.17 13:53:22 MSK

 // разумная запись fp = fopen("file.txt", "a+"); if (fp == NULL) < // забыл проверочку. fprintf(stderr, "open file error\n"); return -1; >fwrite(strfilewrite, sizeof(char), strlen(strfilewrite), fp); fclose(fp);

Как перейти на новую строку в си

Здравствуйте господа программеры!

есть строка кода вида:

#define ALL_FLAGS (FLAG1 | FLAG2 | FLAG3 | . FLAGN)

длинное перечисление всех флагов.
естественно просматривать длинную строку неудобно.
как перенести строку кода на другую строку (если в макросе это вообще возможно) ?

зы. я родом из Delphi и в «Сях» еще пока плаваю

Re: Перенос длинной строки кода . ?

От: DV_Sergey
Дата: 18.07.05 04:13
Оценка:

Здравствуйте, Callisto, Вы писали:

C>Здравствуйте господа программеры!

C>есть строка кода вида:

C>#define ALL_FLAGS (FLAG1 | FLAG2 | FLAG3 | . FLAGN)

C>длинное перечисление всех флагов.
C>естественно просматривать длинную строку неудобно.
C>как перенести строку кода на другую строку (если в макросе это вообще возможно) ?

C>зы. я родом из Delphi и в «Сях» еще пока плаваю

символ \ используется для переноса строк в С/С++

Re[2]: Перенос длинной строки кода . ?

От: Callisto
Дата: 18.07.05 05:12
Оценка:

DV_>символ \ используется для переноса строк в С/С++

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *