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

Вывод на принтер? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.92
wmkross
 Аватар для wmkross
2 / 2 / 0
Регистрация: 24.09.2008
Сообщений: 10
26.09.2008, 22:06     Вывод на принтер? #1
Вопрос пустяковый(ответ будет полезен для тех, кто книгу "C за 21 день", ну и для меня:-) ) .

Система WinXp, среда Ms Visual 6, снизу код вывод на печать, но чего-то не печатает!!! Может кто подскажет, чего доделать или заменить или небольшой промоушен на данную тему , а там сам разберусь???

И чего-то пытался использовать getcr() , и всеравно остановки нет???

Заранее всем СПС!!!


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include<stdlib.h>
#include<stdio.h>
 
 
void do_heading(char *filename);
 
int line=0, page=0;
 
 
int main( int argv, char *argc[])
{
    char buffer[256];
    FILE *fp;
 
    if(argv<2)
    {
        fprintf(stderr, "\nProper Usage is: ");
        fprintf(stderr, "\n\nprint_it filename.ext\n");
        return(1); 
    }
 
        if(( fp=fopen(argc[1], "r")) == NULL)
        {
            fprintf(stderr, "Error opening file, %s!", argc[1]);
            return(1);
        }
 
    
    
    page=0;
    line=1;
    do_heading(argc[1]);
  
    while(fgets(buffer, 256, fp) != NULL)
    {
        if(line %55==0)
            do_heading(argc[1]);
 
        fprintf(stdout, "%4d:\t%s", line++, buffer);
    }
 
    fprintf(stdout, "\f");
 
    fclose(fp);
 
    return 0;
}
 
 
void do_heading(char *filename)
{
    page++;
 
    if (page>1)
        fprintf(stdout, "\f");
 
    fprintf(stdout, "page: %d, %s\n\n", page, filename);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.09.2008, 18:41     Вывод на принтер? #2
Поставь getchar() перед каждым return и будет тебе счастье...
wmkross
 Аватар для wmkross
2 / 2 / 0
Регистрация: 24.09.2008
Сообщений: 10
29.09.2008, 09:35  [ТС]     Вывод на принтер? #3
Цитата Сообщение от Vourhey Посмотреть сообщение
Поставь getchar() перед каждым return и будет тебе счастье...
Vourhey ,Спс, все ок!!! но теперь напрашивается вопрос, а почему тогда нет остановки когда я ставлю getcr() в конце главной функции перед return()??? Поясните плиз!!!!

И про печать!!!!

Заранее всем СПС!!!!
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
29.09.2008, 11:30     Вывод на принтер? #4
Поясняю. Кто ж тебе сказал, что выполнение программы вообще доходит до конца твоей функции? Я вижу три return, значит три выхода.

Что именно про печать?
Angry_Bobo
 Аватар для Angry_Bobo
269 / 31 / 3
Регистрация: 27.08.2008
Сообщений: 156
29.09.2008, 12:06     Вывод на принтер? #5
stdout - это печатающее устройство???
wmkross
 Аватар для wmkross
2 / 2 / 0
Регистрация: 24.09.2008
Сообщений: 10
29.09.2008, 12:29  [ТС]     Вывод на принтер? #6
А понял, ступил(не сразу смекаю, начинающий всетаки), все как ясный день (по поводу getchar()) !!!

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

stdout - ...???? Angry_Bobo поясни плиз, что за штука и как ее кушать???(Или дай инфу)
Angry_Bobo
 Аватар для Angry_Bobo
269 / 31 / 3
Регистрация: 27.08.2008
Сообщений: 156
29.09.2008, 12:37     Вывод на принтер? #7
stdout - стандартное у-во вывода, оно же по дефолту - монитор... Как переназначить stdout на печать, чесслово, уже не помню... Как проще сделать - см. ниже...

Цитата Сообщение от wmkross Посмотреть сообщение
а вот по поводу печати---- это пример из книги (вроде должно печатать) у меня не печатает, так может кто подскажет, что не так в проге или инфу подкинет на данную тему, а там сам как-нибудь!!!!
Намекаю:

C++
1
2
3
4
5
6
7
FILE *Printer;
//prn - принтер
if ( (Printer = fopen("prn","w") ) == NULL ) {
  // ...
}
fprintf(Printer,"......");
fclose(Printer);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2008, 13:33     Вывод на принтер?
Еще ссылки по теме:

Вывод данных на принтер C++
C++ Как строку отправить на принтер
Потоки и принтер C++
C++ Имитация очереди печати на принтер
Печать на русском. Принтер CUSTOM TG2480H (VS2013) C++

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

Или воспользуйтесь поиском по форуму:
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
29.09.2008, 13:33     Вывод на принтер? #8
Цитата Сообщение от wmkross Посмотреть сообщение
а вот по поводу печати---- это пример из книги (вроде должно печатать если перенаправить на принтер) а как енто сделать?? или инфу подкинет на данную тему, а там сам как-нибудь!!!!

stdout - ...???? Angry_Bobo поясни плиз, что за штука и как ее кушать???(Или дай инфу)
вообще не вижу ничего в этом примере с принтером связанного...

P. S. а перенаправить, пожалуй можно примерно так:
Код
freopen("prn", "w", stdout);
Yandex
Объявления
29.09.2008, 13:33     Вывод на принтер?
Ответ Создать тему
Опции темы

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