Пробелы
Символы пробела, табуляции, перевода строки (новой строки), возврата каретки, перевода страницы и вертикальной табуляции называются пробельными символами, поскольку они выполняют ту же функцию, что и пробелы между словами и строками на печатной странице — они упрощают чтение. Токены разделяются (разграничиваются) пробельными символами и другими токенами, например операторами и символами пунктуации. При синтаксическом анализе кода компилятор C игнорирует пробельные символы — кроме тех случаев, когда они используются как разделители или как компоненты символьных констант или строковых литералов. Используйте пробельные символы, чтобы сделать программу более удобочитаемой. Обратите внимание, что комментарии также обрабатываются компилятором как пробел.
См. также
Дополнительные ресурсы
Значок отказа согласно Закону Калифорнии о защите конфиденциальности потребителей (CCPA)
- Светлая
- Темная
- Высокая контрастность
- Предыдущие версии
- Блог
- Участие в доработке
- Конфиденциальность
- Условия использования
- Товарные знаки
- © Microsoft 2023
Дополнительные ресурсы
Значок отказа согласно Закону Калифорнии о защите конфиденциальности потребителей (CCPA)
- Светлая
- Темная
- Высокая контрастность
- Предыдущие версии
- Блог
- Участие в доработке
- Конфиденциальность
- Условия использования
- Товарные знаки
- © Microsoft 2023
Как сделать пробел в c
Регистрация: 16.03.2012
Сообщений: 11
Как поставить пробел?
Пишу программку, которая переписывает строку из .txt файла в другой .txt файл.
Необходимо чтобы строки не перезаписывались, а писались с новой строки(это сделано), но также чтобы после каждой строки был пробел.
Помогите разобраться! Заранее спасибо)
#include "stdafx.h" #include "windows.h" #include #include #include #include using namespace std; int _tmain() < FILE *file1, *file2; char* file_name = "D:\\file1.txt"; char load_string[100] = "none"; time_t tt; struct tm * ptm; char buf[BUFSIZ]; tt = time(NULL); ptm = localtime(&tt); strftime(buf, BUFSIZ, "D:\\tt%Y%m%d.txt", ptm); file1 = fopen(file_name, "r"); file2 = fopen(buf, "a"); fputs( "string", file1); if( file1 != 0 ) else fprintf(file2, load_string); // Вот здесь непонятно. Пишу fprintf(file2, load_string, " "); но пробела так и нет. // Или пишу fprintf(file2, " \n", load_string); - тогда пробел в начале строки. fclose(file1); fclose(file2); _getch(); >
Последний раз редактировалось Stilet; 30.03.2012 в 07:30 .
| random_name |
| Посмотреть профиль |
| Найти ещё сообщения от random_name |
Как поставить пробел в cout? C++ [закрыт]
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.
Вопрос вызван проблемой, которая больше не воспроизводится, или опечаткой. Хотя похожие вопросы могут быть уместны на этом сайте, решение для этого вопроса вряд ли поможет будущим посетителям. Обычно можно избежать подобных вопросов написанием и исследованием минимальной программы для воспроизведения проблемы до публикации вопроса.
Закрыт 2 года назад .
#include using namespace std; int main() < int x, result, result1; cin >> x; result = x / 10; result1 = x % 10; cout
Перешёл на C++ с питона буквально пару дней назад, туплю иногда, но сейчас просто не знаю как сделать пробел в cout, чтобы в результате было — 2 3, а не 23. Помогите, пожалуйста.
Как поставить пробел после запятой в строке?

В чём же проблема?
- Вопрос задан более года назад
- 263 просмотра
3 комментария
Средний 3 комментария
Есть же memmove, зачем руками копировать байты? Это скучное занятие.
Искать запятые можно с помощью strchr.
В Insert вы затираете завершающий ноль и не восстанавливаете его. По идее последний printf вам может выдать вашу строку с мусорным продолжением, так же может быть и SEGFAULT если не повезет.
Вы не контролируете выход за границы массива в Insert. Например, что будет, если введенная строка будет длиной в 255 байт и там надо будет вставить 2 пробела (хотя достаточно и одного, чтоб выход за границы массива случился в printf)?
В Insert вы затираете завершающий ноль и не восстанавливаете его.
res2001, Нет, не затирает. Первая итерация цикла как раз его копирует.
jcmvbkbc, Да, согласен. Завершающий ноль не затирается.
Но выход за границу массива все равно возможен, когда итоговая строка будет больше 255 символов.
Т.к. массив sentence лежит на стеке, то это может проявляться по разному.
Решения вопроса 1
Илья @Leytox Автор вопроса
for (int i = strlen(sentence); i > pos; i—) <
sentence[i + 1] = sentence[i];
>
sentence[pos] = ‘,’;
sentence[pos + 1] = ‘ ‘;
Ответ написан более года назад
sentence[pos] = ‘,’; не нужно, потому что функция вызывается только когда sentence[pos] == ‘,’;
Ответы на вопрос 1
«I’m here to consult you» © Dogbert
В чём же проблема?
for (int i = strlen(sentence); i >= pos; i--)
Должно быть
for (int i = strlen(sentence); i > pos; i--) < sentence[i + 1] = sentence[i]; >sentence[pos + 1] = ' ';
Ответ написан более года назад
Комментировать
Нравится 1 Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Android
- +3 ещё
Какие есть доки по сборке APK/AAB с использованием Android NDK?
- 1 подписчик
- 30 дек. 2023
- 65 просмотров