字符-ascii码的fputc出错,而且显示不全

问题描述

ascii码的fputc出错,而且显示不全

输出1~127的ascii码对应码字char c,有一些字符显示不全,比如7,8,9,13后面是空的。用fputc将它们依次写进文件。

用fgetc读取该文件,并将得到的字符依次显示,
可是到了第26个字符,显示文件结束了!程序结束!这是为什么?
程序非常短小,请帮忙看一下!

#include
#include
using namespace std;
void main(){
char c;
int t=0;
FILE *in,*out;
out=fopen("1.txt","w");
for(int i=0;i<127;i++)
{c=i;
cout<<i<<":"<<c<<endl;
fputc(c,out);
}
system("pause");
fclose(out);

in=fopen("1.txt","r");
while(!feof(in))
{
    c=fgetc(in);
cout<<t<<":"<<c<<endl;
t++;
}
system("pause");
fclose(in);

}

解决方案

fopen里面的"r"表示用文本方式打开,如果文件不是文本,比如你这种奇怪的字符,就有可能要出问题了,用"rb"二进制方式打开就行了

解决方案二:

应该是遇到了不认为是9有效字符的字符了

解决方案三:


ascii码表中有些字符是控制字符,是不可打印字符

时间: 2024-10-30 15:43:08

字符-ascii码的fputc出错,而且显示不全的相关文章

ASCII码

看一本书的时候想到的,感觉有点不务正业了,其实我感觉我需要一个全能助手,随时回答我的疑问   ASCII码是用来表示"字符"的.这里的字符包括了0-9九个数字,a-z的26个字母的大小写,各个标点符号,以及回车.空格.退格等一些特殊符号.ASCII 码使用指定的8位二进制数组合来表示,每个ASCII码是一个8位二进制数,一个ASCII码只能表示一个字符. 补码是用来表示带符号数字的.先将十进制数转成相应的二进制数,在最高位前加上0或1代表数字的正负,就产生了数字的原码,再按一定的规则转

字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码

字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码 http://www.regexlab.com/zh/encoding.htm 1. 编码问题的由来,相关概念的理解 1.1 字符与编码的发展 从计算机对多国语言的支持角度看,大致可以分为三个阶段: 系统内码 说明 系统 阶段一 ASCII 计算机刚开始只支持英语,其它语言不能够在计算机上存储和显示. 英文 DOS 阶段二 ANSI编码(本地化) 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字

c++的ascii码值的显示问题问题

问题描述 c++的ascii码值的显示问题问题 各位大虾,在vc中的控制台程序没办法显示所有ascii码对应的字符怎么办?就是我现在 写了一个des代码,有加密也有解密,但加密后的密文我自己没法输进去,也无法从控 制台界面获取,没法还原,还有一点,为什么几个ascii码一结合,它就自动转换成 奇怪的中文字符,而不是单独的一个个ascii码对应的字符?求教 解决方案 你的ascii码如果大于127,就会被当作中文.不是所有的ascii码都是可以显示出来的.建议你用十六进制的形式,而不是原始字符的形

PHP详解ASCII码对照表与字符转换_php技巧

一,通用的ASCII码对照表 图解ASCII码对照表图,以字符A为例Dec表示十进制,如65Hx表示十六进制,如41Oct表示八进制,如101Char表示显示字符,如A ASCII码对照表图分为两个单元1,控制字符 0-31和1272,可显示字符 32-126(1)48-57为0到9十个阿拉伯数字:(2)65-90为26个大写英文字母:(3)97-122号为26个小写英文字母:(4)其它标点符号.运算符号等: 二,ASCII扩展码对照表   三,PHP字符转换函数说明 具体字符转换函数说明请参考

PHP中ASCII码对照表与字符转换详解

通用的ASCII码对照表 图解ASCII码对照表图,以字符A为例 Dec表示十进制,如65 Hx表示十六进制,如41 Oct表示八进制,如101 Char表示显示字符,如A ASCII码对照表图分为两个单元 1,控制字符 0-31和127 2,可显示字符 32-126 (1)48-57为0到9十个阿拉伯数字: (2)65-90为26个大写英文字母: (3)97-122号为26个小写英文字母: (4)其它标点符号.运算符号等: 二,ASCII扩展码对照表   三,PHP字符转换函数说明 具体字符转

C语言之将无符号字符型转化为ascii码值

这个宏是在linux内核中获取的,主要的功能是能够将一个无符号字符型的参数转化为ASCII码值. ASCII : ASCII 编码里包括了128个字符.用 十进制 0  到 127 来表示 .那就对了, 0 到 127 不就是 128个字符吗. 每一个数字都代表一个字符.看ASCII 编码表 我们来看看代码: #include <stdio.h> #include <stdlib.h> #define toascii(c) (((unsigned char)(c))&0x7

android-Android 输入字符,转换为ascii码输出,编译没问题,但是运行时有问题

问题描述 Android 输入字符,转换为ascii码输出,编译没问题,但是运行时有问题 public class Activity1 extends Activity { public static int char2ASCII(char c) { return (int) c; } public static int[] string2ASCII(String s) {// 字符串转换为ASCII码 if (s == null || "".equals(s)) { return n

用ASCII码写入的汉字,以字符数组读取出来的,怎么还原成汉字?

问题描述 用ASCII码写入的汉字,以字符数组读取出来的,怎么还原成汉字? 用ASCII码写入的汉字,以字符数组读取出来的,怎么还原成汉字? 解决方案 关于汉字与Ascii码关于汉字与Ascii码 解决方案二: ASCII是无法写入汉字的,只能写字母,符号啥的,如果强行写入,无法恢复成汉字.汉字要通过unicode编码或者gb2312编码写入.然后原码解析成字符串.

JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)_javascript技巧

var a='11160'; alert(parseInt(a,2)); //将111做为2进制来转换,忽略60(不符合二进制),从左至右只将符合二进制数的进行转换 alert(parseInt(a,16)); //将所有的都进行转换 依照此方法,其实可以转换成任何进制 var a='1110'; alert(parseInt(a,10).toString(16)); //将A转换为10进制,然后再转换成16进制 同样也可以是其它进制 下面说下ASCII 码: function test(){