c语言 txt文本里面的数字是char型还是int型?

假如通过fprintf函数以w形式打开txt文件,并往txt文件写入一个整型数字。
(例: int i=6; fp=fopen("123.txt",w); fprintf(fp,"%d",i); )
这种情况下,如果有程序用fscanf函数读取txt文件里的内容,请问读出的数字是char型还是int型?是不是在fscanf函数里格式化读取,用%d读取就是int型,用%c读取就是char型?
(强迫症)补充一下例子里面的缺失定义: FILE *fp;

第1个回答  2018-01-07
内容为数字的char,包含
0,1,2,3,4,5,6,7,8,9
共计10个字符。
这十个字符在存为字符型时,其存储值为对应的ascii码,而这些ascii码是连续的,且按照其本身数字的大小来排列。
这样就可以将字符值,减去起始ascii码值实现转为对应值的效果。

int a; //转换的目标变量。
char c = '7'; //要转换的字符。
c = a - '0';
这样得到的就是对应的值了,即c = 7。
如果在文件中需要多次该操作,则可以定义一个带参宏,如下:
#define chartonumber(x) (x-'0')
这样只需要调用
c = chartonumber(a);
即可实现效果。追问

你搞错了吧?应该是char a = '7'; int c = a - '0'; 这样 c 的值才是 7 。

本回答被网友采纳

C语言中,数字和数字字符有什么区别
1,数据类型不同:数字1是数值类型中的整数类型(int)数字字符‘1’是字符类型(char)2,处理方式不同:数字1按照数值信息的处理方式处理。数字字符‘1’按照字符串的处理方式处理。3,表达方式不同:数字1的占位符为%d。数字字符‘1’的占位符为%c。

C语言读取文件如何直接将文件中的数字读成int型的数字?
int main(){ char s1[]="12345",s2[]="-123.456";int a;float b;sscanf(s1,"%d",&a);sscanf(s2,"%f",&b);printf("%d\\n%.3f\\n",a,b);return 0;} 请点击输入图片描述

C语言中,字符常量不是char类型吗?《程序员入门必备》这本书中,有一段...
(2)'a'并非char类型,事实上它是int类型 这话说得不仅让人难以理解,而且根本就是错的。'A'是char类型常量无疑,注意区分术语integral type(整数类型,包括有符号或无符号的int, short, char)和integer(整型int),看英文书这个区别很明显,比如case子句都要求integral type,不一定是int类型。(3)啥...

c语言中char和int区别?
char是字符型,int是整型。char用于声明字符类型的数据,如 char a;int 用于声明整型数据 ,如 int a;

C语言的整型数据类型包括哪些?
在C语言中,整型数据类型包括以下几种:char:字符型,占1个字节,用于存储字符。int:整型,占2或4个字节,用于存储整数。short:短整型,占2个字节,用于存储较小范围的整数。long:长整型,占4或8个字节,用于存储较大范围的整数。long long:长长整型,占8个字节,用于存储超大范围的整数。这些...

C语言中int与字符串的关系
int 是整形数据,比如1,2,3之类的,而char是字符型数据,比如a,b,c之类的,int[]代表的是整形数字数组,如{1,2,3},而char[]代表的是字符数组,比如"hello"之类的,

c语言中的数据类型有哪些
一、基本数据类型 在C语言中,基本数据类型是指内置的数据类型,它们在程序中直接使用,不需要用户自定义。这些数据类型包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。1. 整型(int):用于存储整数,可以是正数、负数或零。例如,int a = 10; 表示变量a的值为10。2....

单片机c语言char和int什么区别啊?
int类型通常被用来表示整型数据,比如整数。在单片机中,int类型的大小通常是2个字节(16位),其数据范围一般是-32768到32767或0到65535。int类型的变量通常用于存储整数型数据。因此,char和int的区别主要在于数据范围和作用。在单片机C语言中,char类型通常用于存储字符型数据,而int类型则用于存储整型数据...

C语言 在不知道用户输入的是字母还是数字的情况下 用int 还是char...
如果只需要输入一个字符或者一个数字,使用int类型比较简单,不容易发生错误,使用单个字符变量,输入缓冲区里的字符有时候会对输入产生影响。但此时获取到的是字符内码,作为字符应用时需要按内码处理。而且在程序内,仅仅根据获取到的数据,很难区分获取到的是以一个两位以上的数值还是一个字符内码。如果...

C语言当中int,float,double,char这四个有什么区别?
4、char为字符型,用于定义字符类型的数据。二、内存占据:1、int 的内存大小是4 个byte。2、float 内存大小是4 个byte。3、double 的内存大小是8 个byte。4、char 的内存大小是1 个byte。基本数据类型表如下:三、表示的数据范围:1、int:数的范围为-(2的31次方-1)到(2的31次方-1),...

相似回答