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

При выводе пропускает пустые строки - C++

Восстановить пароль Регистрация
 
Yarikson86
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 28
10.06.2014, 20:07     При выводе пропускает пустые строки #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
    FILE *f1;
    char c[50], txt[10][200];
    int n=0;
    cout<<"Vvedite imia fila ";
    gets(c);
 
    f1=fopen(c,"r");
    fscanf (f1, "%d", &n);
 
 
    for (int i =0; i < n; i++)
    {
        fscanf(f1, "%s\n",txt[i]);
        cout << "\n" << i+1 << ") stroka: \n";
        printf ("%s\n", txt[i]);
    }
    getch();
}
Код вывода, при выводе пропускает пустые строки, как исправить?
Пример на скриншотах:
в Notepad++ 3 и 4 строка пустые, что правильно, они должны отобразиться пустыми под номерами 2 и 3, но консоль не отображает их.
Миниатюры
При выводе пропускает пустые строки   При выводе пропускает пустые строки  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
megamuz
11 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 35
10.06.2014, 20:16     При выводе пропускает пустые строки #2
в цикл фор вставь проверку на пустую строку точно не понял как но примерно так.

if(txt[i]) printf ("%s\n", '\n');
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
10.06.2014, 20:24     При выводе пропускает пустые строки #3
Так работает fscanf. Если нужно читать целиком все строки, используй fgets.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 20:28     При выводе пропускает пустые строки #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    FILE *f1;
    char c[50], txt[10][200];
    int n=0;
    cout<<"Vvedite imia fila ";
    gets(c);
 
    f1=fopen(c,"r");
    fscanf (f1, "%d\n", &n);
 
    for (int i = 0; i < n; i++)
    {
        fgets(txt[i], 200, f1);
        cout << "\n" << i + 1 << ") stroka: \n";
        printf ("%s\n", txt[i]);
    }
    getch();
Yarikson86
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 28
10.06.2014, 20:35  [ТС]     При выводе пропускает пустые строки #5
Somebody, alsav22, спасибо

Добавлено через 3 минуты
alsav22, только он теперь также считывает первую строку, то есть цифру 5, как пустую, а не должен брать в вид вообще.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 20:57     При выводе пропускает пустые строки #6
Цитата Сообщение от Yarikson86 Посмотреть сообщение
только он теперь также считывает первую строку, то есть цифру 5, как пустую, а не должен брать в вид вообще.
Цифру 5 код должен прочитать (в n) как число 5 (что код и делает). Это количество строк, которое будет дальше считано в цикле. Что значит: " не должен брать в вид вообще."?
Yarikson86
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 28
10.06.2014, 21:25  [ТС]     При выводе пропускает пустые строки #7
alsav22, уже сделал все, просто он на вывод его подавать не должен.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 21:31     При выводе пропускает пустые строки #8
Цитата Сообщение от Yarikson86 Посмотреть сообщение
просто он на вывод его подавать не должен
А где там вывод n?

Добавлено через 1 минуту

Не по теме:

Л/с получили?

Yarikson86
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 28
10.06.2014, 21:34  [ТС]     При выводе пропускает пустые строки #9
alsav22, мне вывод n не нужен, он только для того, чтобы работал цикл
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 21:41     При выводе пропускает пустые строки #10
Цитата Сообщение от Yarikson86 Посмотреть сообщение
мне вывод n не нужен, он только для того, чтобы работал цикл
Где, в выложенном коде, вывод n? Вот это о чём написано?
Цитата Сообщение от Yarikson86 Посмотреть сообщение
просто он на вывод его подавать не должен.
Где-то, в выложенном коде, n подаётся на вывод?
Yarikson86
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 28
10.06.2014, 21:42  [ТС]     При выводе пропускает пустые строки #11
alsav22, его там нет, и не должно быть, при считывании он считывал эту цифру как пустую строку.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 21:55     При выводе пропускает пустые строки #12
Цитата Сообщение от Yarikson86 Посмотреть сообщение
при считывании он считывал эту цифру как пустую строку.
С чего это вдруг? Где здесь чтение пустой строки?
C++
1
fscanf (f1, "%d\n", &n);
Добавлено через 5 минут
Мой код в 4-м посте смотрите, а не свой. Часть своего кода, наверное, берёте, а часть моего, а потом проблемы...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2014, 21:58     При выводе пропускает пустые строки
Еще ссылки по теме:

Выводятся две строки подряд при выводе лишь одной C++
C++ Мусор при выводе не смотря на \0 символ в конце строки
Функция getline пропускает ввод строки C++

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

Или воспользуйтесь поиском по форуму:
Yarikson86
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 28
10.06.2014, 21:58  [ТС]     При выводе пропускает пустые строки #13
alsav22, возможно, но все равно, спасибо
Yandex
Объявления
10.06.2014, 21:58     При выводе пропускает пустые строки
Ответ Создать тему
Опции темы

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