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

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

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

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

10.06.2014, 20:07. Просмотров 497. Ответов 12
Метки нет (Все метки)

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, но консоль не отображает их.
0
Миниатюры
При выводе пропускает пустые строки   При выводе пропускает пустые строки  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2014, 20:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос При выводе пропускает пустые строки (C++):

Копирование строки. При вводе пробела программа пропускает последующий ввод данных - C++
char st, st1; int k, m, i, j; system(&quot;cls&quot;); cout &lt;&lt;&quot;Введите строку&quot;&lt;&lt;endl; cin &gt;&gt;st; cout &lt;&lt;&quot;Введите номер символа,...

Ошибка при выводе строки - C++
С указателями работаю не в первый раз, но почему-то возникает ошибка во время работы. int main() { char temp = &quot;hello_world&quot;; ...

Ошибка при выводе строки - C++
Подскажите в чем дело?? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using namespace std; class...

Пропадают строки при выводе в консоль - C++
куда-то пропадают строки. например: for(int q=0;q&lt;10;q++){ cout&lt;&lt;q&lt;&lt;&quot;-q&quot;; for(int w=0;w&lt;10;w++){cout&lt;&lt;w&lt;&lt;&quot;-w&quot;; ...

Ограничение ширины строки при выводе в консоль - C++
Класс выводит строку в консоли. Как сделать, чтобы ширина выводимых строк была равна characterWidth = 40, т.е. после 40 символов был...

Мусор при выводе не смотря на \0 символ в конце строки - C++
qq Есть проблемка с выводом мусора в конце строки Вот код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstring&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
megamuz
12 / 1 / 0
Регистрация: 09.06.2014
Сообщений: 35
10.06.2014, 20:16 #2
в цикл фор вставь проверку на пустую строку точно не понял как но примерно так.

if(txt[i]) printf ("%s\n", '\n');
0
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
10.06.2014, 20:24 #3
Так работает fscanf. Если нужно читать целиком все строки, используй fgets.
1
alsav22
5420 / 4816 / 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();
0
Yarikson86
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 28
10.06.2014, 20:35  [ТС] #5
Somebody, alsav22, спасибо

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

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

Не по теме:

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

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

Выводятся две строки подряд при выводе лишь одной - C++
Баловался со строками. Возник вопрос. Есть код: ... char str1 = &quot;&quot;, str2 = &quot;&quot;; cin &gt;&gt; str1; cout &lt;&lt; str1 &lt;&lt; endl; cin &gt;&gt;...

Программа пропускает ввод первой строки - C++
здраствуйте. в коде програмы, приведенном ниже, в структуру Track записываются данные, считанные с клавиатуры(функция Track...

Функция getline пропускает ввод строки - C++
Строка с getline(cin, pc.name); пропускает ввод. Пишу getline(cin, pc.name); так, как нужно ввести строку с пробелами. Подскажите ,что...

При выводе массива выводить номер строки и номер столбца - C++
Помогите реализовать вывод номера строки и столбца массива, у меня рандом пропадает, когда я пытался реализовать вывод номера строки или...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.06.2014, 21:58
Ответ Создать тему
Опции темы

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