问题
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