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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lamarLich
0 / 0 / 0
Регистрация: 27.06.2014
Сообщений: 16
#1

Убрать "\n" из строки - C++

27.06.2014, 15:57. Просмотров 278. Ответов 3
Метки нет (Все метки)

Сначала я записываю в файл массив структур в цикле
C++
1
2
3
for (int i = 0; i < ttl; i++) {
        fprintf(f, "%s\n%s\n%s\n", film[i].name, film[i].genre, film[i].year);
    }
Далее мне нужно сканировать этот файл и вывести в консоль:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
            while (fgets(buf, max, f) != NULL) {
                if (j < 3) {
                    if (j == 0) {
                        film[i].name = new char[strlen(buf)];
                        strcpy(film[i].name, buf);
                        
                    }
                    if (j == 1) {
                        film[i].genre = new char[strlen(buf)];
                        strcpy(film[i].genre, buf);
                    }
                    if (j == 2) {
                        film[i].year = new char[strlen(buf)];
                        strcpy(film[i].year, buf);
                    }
 
                    j++;
                }
                else {
                    i++;
                    j = 0;
                }
            }
Проблема в том, что в памяти остается "\n", т.е. film[i].name, например, содержит "Название фильма\n" и при последующей записи в файле образуется пустая строка из за двух \n. Как решить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2014, 15:57     Убрать "\n" из строки
Посмотрите здесь:

Записать из строки все буква "А" "а" в файл - C++
Записать из заданной строки все буквы А а в файл. Плз если можно срочно)) Буду очень благодарен)) Желательно на языке для новичков

Проверяю, являются ли 4 строки стихом. "й" принимает за "и", тем самым принимает за слог - C++
Суть программы: банальная проверка на то, являются ли 4 строки стишком. Метод решения задачи: равное кол-во слогов и одинаковые последние...

Программа,где надо убрать эти "::" знаки - C++
std::fstream in(&quot;input.txt&quot;, std::ios::in), out(&quot;output.txt&quot;, std::ios::out); std::replace_copy(std::istreambuf_iterator&lt;char&gt;(in),...

Убрать переход на новую строку после "cin" - C++
Хотелось бы убрать переход на новую строку после &quot;cin&quot;. когда использую cin&gt;&gt;n; после ввода, в консоли автоматически идет переход на...

Как убрать контуры вокруг дерева "treeView"? - C++
Как убрать контуры вокруг дерева &quot;treeView&quot;?

Не могу убрать ошибку: "error LNK2001: неразрешенный внешний символ" - C++
здравствуйте весь интернет уже облазил , ни где похожего найти не могу . overview.obj : error LNK2001: неразрешенный внешний символ...

Как убрать привилегии системы? Почему GetUserName всегда возвращает "SYSTEM"? - C++
Здорово, народ! У меня такая ситуация - есть программа, работающая как служба, так вот эта прога при получении имени юзера...

Класс "Книга". Как убрать каракули? - C++
Разработать классы для описанных ниже объектов. Включить методы set (...), get (...), show (...). Определить другие методы. Book:...

Убрать вывод фразы "Для продолжения нажмите любую клавишу" по окончании работы программы - C++
Ребят как убрать написанное &quot;Для продолжения нажмите любую клавишу&quot; ????

Как убрать "хвосты" массива С++ - C++
Добрый день, друзья. Стоит такая задача: Создать случайный массив размера n. Упорядочить его следующим образом: сначала идут все четные...

Дополнить строки знаками "+", чтобы все строки в нем имели длину 80 символов - C++
В текстовом файле f1 длина каждой строки не более 80 символов. Сформировать файл f2 таким образом, чтобы все строки в нем имели длину 80...

Ввести две строки, заменить первый символ "r" символами второй строки - C++
Нужно ввести две строки . Заменить первый символ &quot;r&quot; символами второй строки.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FraidZZ
Ex-Member
3897 / 1523 / 229
Регистрация: 06.01.2013
Сообщений: 4,050
Завершенные тесты: 1
27.06.2014, 16:28     Убрать "\n" из строки #2
C++
1
film[i].name[strlen(film[i].name) - 2] = '\0';
Как костыль.

А в идеале
C++
1
for (int n = 0; i < strlen(film[i].name); ++i) if (film[i].name[n] == '\n') film[i].name[n] = ' ';
zss
Модератор
Эксперт С++
6289 / 5892 / 1910
Регистрация: 18.12.2011
Сообщений: 15,129
Завершенные тесты: 1
27.06.2014, 16:29     Убрать "\n" из строки #3
Читайте через
C++
1
fscanf(file,"%s",buf);
тогда \n будут пропускаться.
FraidZZ
Ex-Member
3897 / 1523 / 229
Регистрация: 06.01.2013
Сообщений: 4,050
Завершенные тесты: 1
27.06.2014, 16:29     Убрать "\n" из строки #4
Но добавляет пробелы.
Yandex
Объявления
27.06.2014, 16:29     Убрать "\n" из строки
Ответ Создать тему
Опции темы

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