(C) Program that prints all CP850 characters on the screen and in a file have different outputs

我们两清 提交于 2020-01-21 18:55:30

问题


The program is pretty simple, it helped me get all the ascii codes since my computer doesn't seem to follow the standards in the interwebs. The problem I'm finding is that the outputs on the file and on the cmd differ. I need to use the box characters for a project that prints a file and on the screen and the file output doesn´t have them apparently.

#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <clocale>

FILE* ascii;

void main()
{
    ascii = fopen("D://temp//ascii.txt", "w");

    setlocale(LC_ALL, "Portuguese_Portugal.850");
    int columns = 0, i;
    printf("\nTable ASCII - C%cdigos 32 a 127 \n\n", 162);
    fprintf(ascii, "\nTable ASCII - C%cdigos 32 a 127 \n\n", 162);
    for(i=32; i<=127; i++)
    {
        printf("%3d-%c   ", i ,i);
        fprintf(ascii, "%3d-%c   ", i, i);
        columns++;
        if(columns==8)
        {
            columns = 0;
            printf("\n");
            fprintf(ascii, "\n");
        }
    }
    printf("\n\n\n");
    printf("\nTable ASCII - C%cdigos 128 a 255\n\n", 162);
    fprintf(ascii, "\n\n\n");
    fprintf(ascii, "\nTable ASCII - C%cdigos 128 a 255\n\n", 162);
    for (i = 128; i <= 255; i++)
    {
        printf("%3d-%c  ", i, i);
        fprintf(ascii, "%3d-%c   ", i, i);
        columns++;
        if (columns == 8)
        {
            columns = 0;
            printf("\n");
            fprintf(ascii, "\n");
        }
    }
    printf("\n\n\n");
    fclose(ascii);
    system("pause");
}

Screen output:

Table ASCII - Códigos 32 a 127

 32-     33-!    34-"    35-#    36-$    37-%    38-&    39-'
 40-(    41-)    42-*    43-+    44-,    45--    46-.    47-/
 48-0    49-1    50-2    51-3    52-4    53-5    54-6    55-7
 56-8    57-9    58-:    59-;    60-<    61-=    62->    63-?
 64-@    65-A    66-B    67-C    68-D    69-E    70-F    71-G
 72-H    73-I    74-J    75-K    76-L    77-M    78-N    79-O
 80-P    81-Q    82-R    83-S    84-T    85-U    86-V    87-W
 88-X    89-Y    90-Z    91-[    92-\    93-]    94-^    95-_
 96-`    97-a    98-b    99-c   100-d   101-e   102-f   103-g
104-h   105-i   106-j   107-k   108-l   109-m   110-n   111-o
112-p   113-q   114-r   115-s   116-t   117-u   118-v   119-w
120-x   121-y   122-z   123-{   124-|   125-}   126-~   127-




Table ASCII - Códigos 128 a 255

128-Ç  129-ü  130-é  131-â  132-ä  133-à  134-å  135-ç
136-ê  137-ë  138-è  139-ï  140-î  141-ì  142-Ä  143-Å
144-É  145-æ  146-Æ  147-ô  148-ö  149-ò  150-û  151-ù
152-ÿ  153-Ö  154-Ü  155-ø  156-£  157-Ø  158-×  159-ƒ
160-á  161-í  162-ó  163-ú  164-ñ  165-Ñ  166-ª  167-º
168-¿  169-®  170-¬  171-½  172-¼  173-¡  174-«  175-»
176-░  177-▒  178-▓  179-│  180-┤  181-Á  182-Â  183-À
184-©  185-╣  186-║  187-╗  188-╝  189-¢  190-¥  191-┐
192-└  193-┴  194-┬  195-├  196-─  197-┼  198-ã  199-Ã
200-╚  201-╔  202-╩  203-╦  204-╠  205-═  206-╬  207-¤
208-ð  209-Ð  210-Ê  211-Ë  212-È  213-ı  214-Í  215-Î
216-Ï  217-┘  218-┌  219-█  220-▄  221-¦  222-Ì  223-▀
224-Ó  225-ß  226-Ô  227-Ò  228-õ  229-Õ  230-µ  231-þ
232-Þ  233-Ú  234-Û  235-Ù  236-ý  237-Ý  238-¯  239-´
240-­  241-±  242-‗  243-¾  244-¶  245-§  246-÷  247-¸
248-°  249-¨  250-·  251-¹  252-³  253-²  254-■  255- 



Press any key to continue . . .

File output:

Table ASCII - C¢digos 32 a 127 ã 

 32-     33-!    34-"    35-#    36-$    37-%    38-&    39-'   
 40-(    41-)    42-*    43-+    44-,    45--    46-.    47-/   
 48-0    49-1    50-2    51-3    52-4    53-5    54-6    55-7   
 56-8    57-9    58-:    59-;    60-<    61-=    62->    63-?   
 64-@    65-A    66-B    67-C    68-D    69-E    70-F    71-G   
 72-H    73-I    74-J    75-K    76-L    77-M    78-N    79-O   
 80-P    81-Q    82-R    83-S    84-T    85-U    86-V    87-W   
 88-X    89-Y    90-Z    91-[    92-\    93-]    94-^    95-_   
 96-`    97-a    98-b    99-c   100-d   101-e   102-f   103-g   
104-h   105-i   106-j   107-k   108-l   109-m   110-n   111-o   
112-p   113-q   114-r   115-s   116-t   117-u   118-v   119-w   
120-x   121-y   122-z   123-{   124-|   125-}   126-~   127-   




Table ASCII - C¢digos 128 a 255

128-€   129-   130-‚   131-ƒ   132-„   133-…   134-†   135-‡   
136-ˆ   137-‰   138-Š   139-‹   140-Œ   141-   142-Ž   143-   
144-   145-‘   146-’   147-“   148-”   149-•   150-–   151-—   
152-˜   153-™   154-š   155-›   156-œ   157-   158-ž   159-Ÿ   
160-    161-¡   162-¢   163-£   164-¤   165-¥   166-¦   167-§   
168-¨   169-©   170-ª   171-«   172-¬   173-­   174-®   175-¯   
176-°   177-±   178-²   179-³   180-´   181-µ   182-¶   183-·   
184-¸   185-¹   186-º   187-»   188-¼   189-½   190-¾   191-¿   
192-À   193-Á   194-Â   195-Ã   196-Ä   197-Å   198-Æ   199-Ç   
200-È   201-É   202-Ê   203-Ë   204-Ì   205-Í   206-Î   207-Ï   
208-Ð   209-Ñ   210-Ò   211-Ó   212-Ô   213-Õ   214-Ö   215-×   
216-Ø   217-Ù   218-Ú   219-Û   220-Ü   221-Ý   222-Þ   223-ß   
224-à   225-á   226-â   227-ã   228-ä   229-å   230-æ   231-ç   
232-è   233-é   234-ê   235-ë   236-ì   237-í   238-î   239-ï   
240-ð   241-ñ   242-ò   243-ó   244-ô   245-õ   246-ö   247-÷   
248-ø   249-ù   250-ú   251-û   252-ü   253-ý   254-þ   255-ÿ   

回答1:


with encoding you have to look into three aspects:

  • where does the input coming from? does it specify the encoding (explicitly or implicitly by specification)? can you trust this information? else you are lost and can cancel the project
  • what encoding is the process you are running on the machine is using? You have to make sure your program sticks to this encoding, end every input is transformed into this encoding.
  • which encoding do you output? make sure, the recipient knows, what he has to expect (as input)


来源:https://stackoverflow.com/questions/41614001/c-program-that-prints-all-cp850-characters-on-the-screen-and-in-a-file-have-di

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!