#include<stdio.h> void main() { char i; i = getchar(); printf("%d",i); } 为什么输入1时输出是49?

作者&投稿:冉解 (若有异议请与网页底部的电邮联系)
#include<stdio.h> void main() {int i; for(i=1;i<10;i++) printf("%d\n",i); }~

程序执行完了自然就退出了,你在代码最后加上getchar();试试,不要加在for循环体里

char*转换

Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换
Qt再使用第三方开源库时,由于库的类型基本上都是标准的类型,字符串遇的多的就是Char*类型
在Qt下怎样将QString转char*呢,需要用到QByteArray类,QByteArray类的说明详见Qt帮助文档。
因为char*最后都有一个‘/0’作为结束符,而采用QString::toLatin1()时会在字符串后面加上‘/0’
方法如下:
Qstring str;
char* ch;
QByteArray ba = str.toLatin1();
ch=ba.data();
这样就完成了QString向char*的转化。经测试程序运行时不会出现bug
注意第三行,一定要加上,不可以str.toLatin1().data()这样一部完成,可能会出错。

补充:以上方法当QString里不含中文时,没有问题,但是QString内含有中文时,转换为char*就是乱码,采用如下方法解决:
方法1:
添加GBK编码支持:
#include
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
然后改变上面的第三行为:QByteArray ba = str.toLoacl8Bit(); toLoacl8Bit支持中文
方法2:
先将QString转为标准库中的string类型,然后将string转为char*,如下:
std::string str = filename.toStdString();
const char* ch = str.c_str();

因为getchar()是输入字符的输入函数,不能直接当做整型变量,在运行时采用ASCII码,1的ASCII码为49。
你可以改写为
i=(i-'0')*10;
即减去ASCii。

为什么要用getchar()呢,直接scanf("%d", i),其中i是整型。。。你题目中输入的是字符'1‘,它的ASCII码为49故printf("%d", i)输出的是49

printf("%c",i);

因为“1”的ASCII码是49

#include <stdio.h>

void main()
{
char i;
i =(int) getchar();
i-=48;
printf("%d\n",i);
i*=10;
printf("%d\n",i);
}


include是什么意思
include是包括的意思。释义:vt.包含,包括。变形:过去式included、过去分词included、现在分词including、第三人称单数includes。双语例句 1、We all have participated that party, including Tom.我们都参加了那个派对,包括汤姆。2、The money includes salary and bonus.这笔钱包含工资和奖金。3、We are...

include和including的区别
1、include是动词,前面要有主语。在句子中作谓语。如:Thepriceincludespostagecharges.价格包括邮费在内。2、including是介词,一般用在逗号后面,或者是冒号的前面,总之,是用标点隔开用的,但是有的时候它也是可以放在句子中的。可做状语或定语。如:Seven,includingagoalkeeper.7名,包括一位守门员。

include是什么意思?
1、include是动词,意为“包括,包含”,侧重指被包含着是整体的一部分,可以在句中充当谓语。例句:(1)、The list include many new names. 这张名单上包含许多新名字。(2)、The book includes two chapters on grammar. 这本书包含两章关于语法的内容。2. including在日常运用中一般被当做...

include和including有什么不同吗?
include和including是两个不同的词语,前者是一个动词,表示“包括、包含”,后者是一个介词,表示“包括在内”、“不仅仅是”或“加上”等意思。而included则是include的过去分词形式,表示“被包括在内”的意思。include是一个动词,表示“包括、包含”的意思,用于表明一个事物或一组事物的其中一部分...

include和include的区别是什么呢?
1、词性不同 Include是动词,including是动词的现在分词形式。2、用法不同 include是及物动词,意为“包括”、“包含”,后可接动名词作宾语,不接不定式。including常接在“逗号”之后,或者是冒号的前面,总之是用标点隔开用的,但是有的时候,其也是可以放在句子中的。3、固定搭配不同 include:include...

include的用法和including区别是什么?
用法上的区别:include是动词原形,可当谓语用,including是现在分词,是种非谓语形式,可作状语,定语,表主动意义。included过去分词,是种非谓语形式,可作状语,定语,表被动意义。词义上的区别:Including:prep. 包含,包括 Include:vt. 包含,包括 Included:adj. 包括的;[植] 内藏的 v. ...

include过去式
include的过去式是included。下面将分为多个部分,详细介绍include过去式的用法和相关知识。一、include过去式的语法 1."Include"是一个动词,其过去式为"included"。2.过去式表示过去发生的事情或状态,可以使用在完成时态,一般过去时等时态中。二、include过去式的常见应用 1.include在过去式中经常与...

include 和including的区别?
1、include是动词,前面要有主语。在句子中作谓语。 如:The price includes postage charges. 价格包括邮费在内。 2、including是介词,一般用在逗号后面,或者是冒号的前面,总之,是用标点隔开用的,但是有的时候它也是可以放在句子中的。可做状语或定语。 如:Seven, including a goalkeeper. 7名,包括一位守门员。

include的用法
include是及物动词,意为“包括”、“包含”,后可接动名词作宾语,不接不定式。included 是过去分词形式的形容词。1.include是及物动词,意为“包括”、“包含”。(include sth.包括某事在内)This plan includes most of your suggestions.这项计划里包括了你们的大部分建议.The group included two ...

'include'和'including' 有什么区别? 怎么用?
1、include是动词,前面要有主语。在句子中作谓语。 如:The price includes postage charges. 价格包括邮费在内。 2、including是介词,一般用在逗号后面,或者是冒号的前面,总之,是用标点隔开用的,但是有的时候它也是可以放在句子中的。可做状语或定语。 如:Seven, including a goalkeeper. 7名,包括一位守门员。

隆阳区13162585367: c语言中#include "stdio.h" -
书刚贝贝: stdio,不过你不写这句话很多方法你都用不了. 最常用的,比如printf()1楼说的对...函数库. 这个stdio中封装了很多有用的函数.h>就用不了;这个方法你不写#include &lt

隆阳区13162585367: 一个C语言求绝对值的问题?我在VC++ 6.0平台上编写求一个数的绝对值程序如下: #include double abstr(double x) { if(x<0.0) x=-x; else x=x; return(x... -
书刚贝贝:[答案] 你的程序 #include double abstr(double x) { if(x<0.0) x=-x; else x=x; return(x); } main() { double a,abstr(double a); printf("Enter real number a please:"); scanf("%1f",&a); p...

隆阳区13162585367: #include int main(void){ int a,b,i,j,k,l,z; char text[3][80]; i = 0; j = 0; k = 0; l = 0; z = 0; printf("请输入相应的字符:\n"); for(a = 0; a < 3; a++) { printf("\n... -
书刚贝贝:[答案] 这好像是c语言吧!不是高中数学的范畴.

隆阳区13162585367: 输入五个整数,使用指针变量将这里个数按从小到大排序后输出输入五个整数,使用指针变量将这里个数按从小到大排序后输出 # INCLUDE main ... -
书刚贝贝:[答案] #include main () { int a[5],*pp,*p,*q,t; for(p=a;p*q) pp=q; if(pp!=p) { t=*p,*p=*pp;*p...

隆阳区13162585367: C语言斐波那契数列求和问题#include int f(int n); void main(void) { int n,sum=0; scanf("%d",&n); for(int i=0;i
书刚贝贝:[答案] 有两个问题,一个是f函数逻辑上有问题,第二个主函数调用有问题,sum=sum+f(i)而不是n,修改如下: #include int f(int n); void main(void) { int n,sum=0; scanf("%d",&n); for(int i=1;i{%解析看不懂?免费查看同类题视频解析查看解答

隆阳区13162585367: #include <stdio.h> -
书刚贝贝: 楼主不用深究了,这个和编译器有关的.标准规定:不要在同一条语句中多次修改同一变量的值 因为求值顺序标准未定义.所以具体的输出依赖于编译器.

隆阳区13162585367: 如何用C语言写一个sin三角函数
书刚贝贝: C语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中... C语言中要编写sin的算法,程序代码如下:#include&ltstdio.h&gt#include&ltmath.h&...

隆阳区13162585367: C语言填空:求1+2+3+…+n至和值首次大于10000之间的值#include main() { int sum,i; sum= (1) ; n=1; while(1) {sum=n; If(sum>10000) (2) ; (3) ; } ... -
书刚贝贝:[答案] #include main() { int sum,n;//这个地方肯定写错了 sum=0; n=1; while(1) { sum+=n;//这个地方肯定写错了 if(sum>10000) break; n++; } printf("n=%d\n",n); }

隆阳区13162585367: #include<stdio.h> main() { int i; double e,new; e=1.0;new=1.0; for(i=1;new>=1e - 6;i++)
书刚贝贝: #include&lt;stdio.h&gt; void main()//您的程序是求e的值,修改如下,可以求出大概的值来 { int i; double e,new1; e=1.0; new1=1.0; for(i=1;new1&gt;=1e-6;i++) { new1/=(double)i;//在vc版本中,new是关键词,不能用来命名变量,改为new1 e+=new1; } printf("e=%f\n",e); }

隆阳区13162585367: C语言判断回文--用指针指做while参数的问题.#include #include #define N 100 int fun(char *p) //传入字符串的首地址 { char *q; q = p; //使... -
书刚贝贝:[答案] '0'的ascii码和'\0'的ascii码不一样 空格的ascii码和'\0'的ascii码也不一样 字符或者字符串指针貌似只遇到'\0'结束

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网